私はObjectQueryを受け取り、さまざまなフィルタパラメータの値を受け取るかどうかによってWhere句を追加するメソッドを持っています。メソッドはObjectQueryを返す必要があります。たとえば、私は基本的な日付の比較を行うことができます。 dateX < dateYです。Date/DateTime ine Entity SQLの比較Where Where
は、これは私の現在のコードです:myDateFilterはDateTime.Nowの値を有する
if (myDateFilter != null)
{
query = query.Where(
string.Format(
"it.ExpireDate < cast('{0}' as System.DateTime)",
myDateFilter));
}
、このコードは言う:System.Data.SqlClient.SqlException:datetimeデータにvarcharデータ型の変換タイプが範囲外の値になりました。
他のすべてのパラメータは文字列フィルタまたは整数フィルタなので、実装する際に問題はありません。何か案は??
OK、それは'31/7/2009 'の文字列形式を取っている日付を渡そうとしているようですが、私は' 1/1/2009 'を渡すと動作します。 db内のwhatsの文化の違いと、アプリケーションで起こっていること。どのように私は同じ形式でそれらを比較することができます?????またはいくつかの文化不変の方法で... – andrej351