我正在尝试研究如何使用 Linq to NHibernate 创建查询。
我有两个这样的课程:
public class Foo
{
private ISet<Bar> _bars = new HashedSet<Bar>();
public virtual ISet<Bar> Bars
{
get { return _bars; }
set { _bars = value; }
}
}
public class Bar
{
public string Name { get; set; }
public string Color { get; set; }
}
Foo 的 Bar 集合被映射为一对多的组件集合。
现在我想运行一个看起来像这样的查询:
var myBar = new Bar { Name = "test", Color = "testColor" };
var matchingFoos = Session.Linq<Foo>
.Where(foo => foo.Bars.Contains(myBar),
new BarEqualityComparer())
.ToList();
我不确定这是否正确,但是每当我运行此查询时,我都会从一个名为 NHibernate.Linq.Visitors.WhereArgumentsVisitor.GetCollectionContainsCriteria 方法的方法中得到一个 NullReferenceException。
任何人都可以用另一种方法来帮助我运行这个查询吗?