Я пытаюсь сопоставить fNH с пользовательским типом, но у меня возникают трудности.
Я хочу, чтобы fNH присваивал свое значение через интерфейс настраиваемому типу. Мне также нужен nHibernate, чтобы сохранить экземпляр настраиваемого типа в сущности. Он всегда будет создаваться при доступе к свойству, не перезаписывайте экземпляр, просто установите значение в оболочке.
Когда я пытаюсь выполнить приведенное ниже сопоставление, возникает исключение «Не удалось найти средство получения для свойства Value» в классе Entities.User »
Идеи?
Сопоставление fNH:
Map(x =>((IBypassSecurity<string>)x.SecuredPinNumber).Value,"[PinNumber]");
Пример домена:
public class User
{
public SecureField<string> SecuredPinNumber {get;private set;}
}
public class SecureField<T> : IBypassSecurity<T>
{
public T Value { get; set; } // would apply security rules, for 'normal' use
T IBypassSecurity<T>.Value {get;set;} // gets/sets the value directy, no security.
}
// allows nHibernate to assign the value without any security checks
public interface IBypassSecurity<T>
{
T Value {get;set;}
}