【发布时间】:2014-11-05 06:08:43
【问题描述】:
如何使用CreateCriteria 查询简单类型的集合?
例如,我有 1 个班级
public class Test
{
public virtual Guid Id { get; set; }
private ICollection<int> _values = new HashedSet<int>();
public virtual ICollection<int> Values
{
get { return _values; }
}
}
还有 2 个表来支持它:
- 仅使用 1 列进行测试:Id
- 具有 2 列的值:TestId 和 Value
我的目标是使用CreateCriteria重写以下查询:
select * from test t
inner join values v on v.TestId = t.Id
where v.Value = 10
我试过这个:
Session.CreateCriteria<Test>("test")
.CreateAlias("test.Values", "values")
.Add(Restrictions.Eq("values", 10))
.List();
就像我用一组对象做的那样,显然失败了。加入是正确的,但如何添加限制?
【问题讨论】:
标签: c# sql nhibernate nhibernate-criteria