に句の間で使用します。 sqlを直接実行すると、2つの日付の間にすべてのレコードが正常に返されます。即ちNHibernateはLINQのは、私は、フィールド<strong>VarCharDate</strong>が間のユーザ入力日付で<strong>ENTITY</strong>からレコードを読みたいのIQueryable
SELECT * FROM ENTITY WHERE VarCharDate BETWEEN '2010-09-01' AND '2012-08-01'
ここVarCharDateフィールドが事前に定義されたタイプVARCHARであり、Iは、日時に変更することができません。 日付形式は、このフィールドに値を格納する場合は'YYYY-MM-DD'に固定されています。
問題:
編集:私はマッピングエンティティのFluentNhibernateを使用しています 。また、私は構成によるアプリケーションの起動時にスキーマを構築します。
私はC#アプリケーションでレコードを取得するためにNhibernate Linqを使用しています。ランタイムエラーの非サポート例外における文の結果の上に実行
session.Query<ENTITY>()
.Where(e=>
Convert.ToDateTime(e.VarCharDate) >= Convert.ToDateTime(loInputDateString) &&
Convert.ToDateTime(e.VarCharDate) <= Convert.ToDateTime(hiInputDateString)
).ToList();
: は、私のようなものを試してみました。
GoogleはExtensionMethodsに関する結果を表示していますが、混乱しているため、まだ実装できませんでした。
私のような何かを達成できる方法:
session.Query<ENTITY>(e=> e.VarCharDate.Between(loInputDateString,hiInputDateString)).ToList();
は、私もリンク LINQ Between Operator
で述べた何かをしようとしたが、それはしかし働いていません。
こんにちはRabban、私はエンティティをマッピングするためにFluentNhibernateを使用していることを言いたいと思う質問を更新しました。 – Shikha
TypeConverterで試してみましたか、Between拡張機能を使いたいですか?プロパティ(フィールドではない)をDateTimeに変更することはできますか? – Rabban