Мы пытаемся реализовать шаблон спецификации в нашем DAL, но столкнулись с некоторыми проблемами. Похоже, что NHibernate не может преобразовать выражение в нечто пригодное для использования, но я не уверен на 100%, является ли это проблемой.
У меня есть объект customer, который содержит объект номера социального страхования, который в свою очередь содержит свойство LastSegment, которое просто возвращает последние четыре цифры ssn. При создании спецификации, которая выполняет поиск по последнему сегменту ssn, мы пришли к следующему выражению, где value - это критерии поиска, переданные пользователем:
a => a.Customer.Ssn.LastSegment == value
Кажется, довольно просто. Однако, когда это выполняется, генерируется исключение со следующей ошибкой:
NHibernate.QueryException : could not resolve property: Ssn.LastSegment of: [namespace].Customer
Правильно ли я интерпретирую ошибку в том, что NHibernate не может перевести мое выражение во что-то, что он может использовать? Есть ли способ обойти это?
В качестве дальнейшего примечания мы также получаем эту ошибку, когда вызываем ToString()
для некоторых объектов.
EDIT:
Копаясь в объекте SocialSecurityNumber, я заметил, что это структура вместо класса. Может ли это вызвать проблемы?