Это - быстрое!
Я попробовал последнюю v3.0.0 альфу, и та перегрузка отличных все еще не поддерживается, однако перегрузка без параметров (который использует компаратор равенства по умолчанию), поддерживается. Делает любой знает, когда будет это поддерживаться в Nhibernate. Linq? Также есть ли любые другие поставщики Linq для NHibernate кроме NHibernate. Linq?
Любая справка ценится!
NHibernate не может использовать произвольный компаратор IEqualityComparer и преобразовать его в SQL. Например:
class PersonEqualityComparer: IEqualityComparer<Person> {
public bool Equals(Person p1, Person p2) {
var cfg = ConfigurationManager.AppSettings["something"];
if (SomeStaticClass.SomeMethod(cfg)) {
return p1.Id == p2.Id;
}
return p1.Name == p2.Name;
}
public int GetHashCode(Person p) {
return p.Id.GetHashCode();
}
}
Да, это может быть ужасная реализация, но возможная и вполне допустимая. Как NHibernate переведет это на SQL? Это невозможно, или, по крайней мере, без некоторой помощи, поэтому вам нужно расширить поставщика NHibernate LINQ , чтобы указать NHibernate, как его переводить.