私は2つのテーブルを持っています:
Product(ProductID, Detail, ProductTypeID)
と
ProductType(ProductTypeID, Detail).
を使用して Product テーブルのリストProductType
を取得したい。膨大な量の製品タイプがあります。ProductTypeID
nhibernate
私は2つのテーブルを持っています:
Product(ProductID, Detail, ProductTypeID)
と
ProductType(ProductTypeID, Detail).
を使用して Product テーブルのリストProductType
を取得したい。膨大な量の製品タイプがあります。ProductTypeID
nhibernate
NHibernate では、テーブルではなく、オブジェクト モデルに対してクエリを記述します。オブジェクト モデルについて説明していないので、テーブルがどのように見えるかに基づいて、単純な仮定を立てました。
NHibernate Linq を使用した 1 つの可能なクエリは、次のようになります。
// Notice no ToList(), since we want it as a subquery.
var usedProductTypesIdSubquery =
session.Query<Product>
.Select(product => product.ProductType.Id);
var usedProductTypes =
session.Query<ProductType>
.Where(productType => usedProductTypesIdSubquery.Contains(productType.Id)
.ToList();
// Because we are using a subquery, and contains (the 'IN' clause in SQL), the
// resulting list usedProductTypes will not contain duplicates.