Я пытаюсь понять, как создать запрос с использованием Linq для 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's Bar отображается как коллекция компонентов один-ко-многим.
Теперь я хочу запустить запрос, который должен выглядеть примерно так:
var myBar = new Bar { Name = "test", Color = "testColor" };
var matchingFoos = Session.Linq<Foo>
.Where(foo => foo.Bars.Contains(myBar),
new BarEqualityComparer())
.ToList();
Я не уверен, что это правильно, но всякий раз, когда я запускаю этот запрос, я получаю исключение NullReferenceException внутри метода NHibernate.Linq.Visitors.WhereArgumentsVisitor.GetCollectionContainsCriteria.
Может ли кто-нибудь помочь мне с альтернативным способом выполнения этого запроса?