ここで私の構文の何が問題なのか誰でも知っていますか? 動的 eSQL クエリを作成していますが、DateTime データ型の where 条件を作成しようとするとエラーが発生します。これはエラーです:
クエリ構文が無効です。期近'2011'、1 行目、135 列目。
私のエンティティの DateTime 型が実際に null 許容の DateTime であることが重要な場合は?
しかし、私が読んだすべてのものから、これは正しい構文だと思いました。
コードは次のとおりです。
List<EntityFilter<FirstRead>> filters = new List<EntityFilter<FirstRead>>()
{
new EntityFilter<StudyFirstRead> { PropertyName = "username", OpType = ExpressionType.Equal, Value = "cwoodhouse" },
new EntityFilter<StudyFirstRead> { PropertyName = "FirstRead", OpType = ExpressionType.LessThan, Value = "DATETIME'2011-02-01 00:00'" }
};
EntityFilter の場所:
public class EntityFilter<T>
{
public string PropertyName { get; set; }
public ExpressionType OpType { get; set; }
public object Value { get; set; }
そして、私は次のような動的クエリを作成しています:
StringBuilder builder = new StringBuilder();
int counter = 0;
string baseStr = @"SELECT VALUE val FROM " + contextName + "." + tableName + " AS val WHERE val.";
builder.Append(baseStr);
foreach (EntityFilter<T> filter in filters)
{
//builder.Append(filter.PropertyName + " " + filter.OpTypeString() + " @p" + counter);
builder.Append(filter.PropertyName + " " + filter.OpTypeString() + "'" + filter.Value + "'");
counter++;
if (counter < filters.Count)
builder.Append(" AND val.");
else
{
break;
}
}
return builder.ToString();