1

結果をフィルター処理するために、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 ";
}
4

1 に答える 1