結果をフィルター処理するために、Entity Framework 4.0 で動的 where 句を使用しています。
お気に入り
ObjectQuery<T> tmp = _context.MyTable.where("it.CreatedAt = @p0");
@p0 はオブジェクト パラメータです
これは完全に正常に機能します。
しかし、問題は私がしたいことです:
where("CAST(it.CreatedAt as Date) = @p0");
そして where("SqlServer.CAST(it.CreatedAt as Date) = @p0");
両方とも失敗しました。
どんな助けでも大歓迎です
アップデート:
エラー情報:
タイプ「日付」が見つかりませんでした。必要なスキーマがロードされ、名前空間が正しくインポートされていることを確認してください。
そして、whereクエリは
it.IsDeleted = true and ( it.OrganizationName ='05 sep 2012' OR Cast( it.CreatedAt as Date ) =@p4 OR 1=0 )
オブジェクト パラメータは既に指定されています。
現在渡されている値は「9/5/2012 12:00:00 AM」で、次のように:
string temp = SearchedQuery.Trim();
DateTime res;
if (DateTime.TryParse(temp, out res))
{
query += ((" Cast( it." + field.Name + " as Date ) =@p" + i + ""));
ObjectParameter pr = new ObjectParameter("p" + i, res);
param.Add(pr);
query += " OR ";
}