我有两张桌子:
Product(ProductID, Detail, ProductTypeID)
和
ProductType(ProductTypeID, Detail).
我想ProductType
使用. 有大量的产品类型。ProductTypeID
nhibernate
我有两张桌子:
Product(ProductID, Detail, ProductTypeID)
和
ProductType(ProductTypeID, Detail).
我想ProductType
使用. 有大量的产品类型。ProductTypeID
nhibernate
在 NHibernate 中,我们针对对象模型而不是表编写查询。由于您没有描述您的对象模型,因此我根据您的表格的外观做了一个简单的假设。
一个可能的查询,使用 NHibernate Linq 将是这样的:
// 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.