У меня есть пользовательский класс, который выглядит примерно так:
public class User
{
public virtual int Id { get; set; }
public virtual long ValueA { get; set; }
public virtual int? ValueB { get; set; }
}
ValueA
автоматически назначается системой.Он используется в поиске, который будет отображаться на UserClass
.Однако, если значение для ValueB существует, то поиск для UserClass
будет выполнен по-другому.
Прямо сейчас я обращаюсь к нему, чтобы получить пользователя и затем каждый раз выполнять отдельный поиск..
return user.ValueB.HasValue ? Find(user.ValueB.Value) : Find(user.ValueA);
Есть ли способ заставить Fluent NHibernate сделать это для меня, чтобы я мог использовать UserClass в качестве свойства класса User вместо того, чтобы выполнять поиск отдельно?Я думал о ComponentMap, но я не уверен, как сделать так, чтобы он учитывал два возможных значения поиска.
Сейчас единственное другое решение, которое я могу придумать, - это обернуть каждый оператор return в моем классе UserService.назначить пользовательский уровень перед возвратом пользователя, что не является решением, которое я хочу продолжить.
public User Find(long valueA)
{
// Get the user
return AssignUserLevel(user);
}
public User AssignUserLevel(User user)
{
// set the user level of the user
}