【发布时间】:2012-12-28 21:46:12
【问题描述】:
我有一个小问题,在连接到另一个表后,同一对象的多个实例。为了测试,我创建了一个Store 和两个Products(ManyToMany-Relation)。以下 sn-p 希望能描述我的问题。
var preResult = _session.QueryOver<Store>().List(); // One store
Product productAlias = null;
var result = _session.QueryOver<Store>()
.JoinAlias(s => s.Products, () => productAlias)
.List(); // Two instances of the same store
我什至认为这种行为是正确的,但如何防止多个实例?是否可以在查询中?
只是为了了解为什么我需要进行此不必要的连接:我想根据不同的条件扩展查询,类似于:
Product productAlias = null;
var query = _session.QueryOver<Store>().JoinAlias(s => s.Products, () => productAlias);
if (!string.IsNullOrWhiteSpace(criteria.ProductName))
{
query.Where(Restrictions.On(() => productAlias.Name).IsInsensitiveLike(criteria.ProductName));
}
if (criteria.ProductType != null)
{
query.Where(s => productAlias.Type == criteria.ProductType);
}
var result = query.List();
在这里我遇到了不同的问题,具体取决于标准。
【问题讨论】:
标签: nhibernate queryover