В настоящее время я делаю следующее, чтобы получить идентификатор сохраненного объекта в БДЕ, которые соответствуют некоторым полям сущности MyObjectПолучить Id из БДА с помощью Ровного/GetHashCode в тех случаях, когда положение
MyObject contract = new MyObject(some parameters);
Session.Query<MyObject>().Where(x=>x.Field1==contract.Field1 && x.Field2==contract.Field2 ....).FirstOrDefault();
Я ищу бы взять прибыль из того, что равноправный и GetHashCode будут перезаписаны, чтобы сделать это следующим образом:
Session.Query<MyObject>().Where(x=>x.Equal(contract)).FirstOrDefault();
Но это не работает. Есть ли какой-нибудь способ избежать повторного ввода всех полей сравнения в предложение Where? Я нахожу это уродливым!
Большое спасибо
Да, я понимаю, что он не может перевести Equal в SQL. Затем вы прекрасно ответили, что я неявно спрашиваю, факт, что метод реализации, который вы отправили, не сделает мой код грязным и может быть слоем данных. Большое спасибо. – user3091460
Точно! именно вы поняли, как я пытался вам предложить ... «GetByCode» - довольно подходящее решение для этих (очень распространенных) сценариев. Удачи в NHibernate;) –