私は古いコードをサポートしています。 NHibernateは、DBのクエリに使用されます。 IQueryOver.Where
などのNHibernate LINQクエリがあります。それは正常に動作しますが、私はローカルシーケンスのこれらのクエリを使用したいと思います。 Microsoft LINQには、方法Enumerable.AsQueryable
があります。 NHibernate LINQにアナログがありますか?NHibernate AsQueryable LINQアナログ
だから私はこれを持っています。私はどこに私の地元のコレクションIEnumerableを<パッケージにこれらすべてを適用する必要があり
private IQueryOver<Package> GetPackages(GetPackageMessage message)
{
var query = SessionFactory.Current.QueryOver<Package>();
if (message.TzapUtc.Use)
{
query = query.Where(x => x.Tzap_utc >= message.TzapUtc.ValueBegin);
}
if (message.Iik.Use)
{
query = use ? query.Where(x => x.Iik == message.Iik.Value);
}
}
>ではなく、コレクションの
はDBからです。
IQueryOverは、思い出した場合、NHibernate -IQueryableのような構造を公開します。したがって、2つはすでにやや類似しています。つまり、大部分のプロジェクトではlinq-to-sqlを使用してEntity Frameworkに直接切り替える方がよいでしょう。 –
@DavidL、[tag:queryover]はLinqと共通のlambdaしか使用しませんが、他には何もありません。それらは互換性のないAPIです。もう少し詳しくは私の答えを見てください。 –