我有一个类似这样的用户类
public class User
{
public virtual int Id { get; set; }
public virtual long ValueA { get; set; }
public virtual int? ValueB { get; set; }
}
ValueA
由系统自动分配。它用于将映射到
UserClass
. 但是,如果valueb的值存在,那么它将查找
用户类
以另一种方式。
现在我处理它的方法是获取用户,然后每次执行一个单独的查找。
return user.ValueB.HasValue ? Find(user.ValueB.Value) : Find(user.ValueA);
有没有什么方法可以让fluent nhibernate为我这样做,这样我就可以将user class作为用户类的属性,而不必单独进行查找?我在想componentmap,但我不确定如何使它考虑两个可能的查找值。
现在,我唯一能想到的另一个解决方案是在返回用户之前,将每个返回语句包装在我的userservice类中以分配用户级别,这不是我想继续使用的解决方案。
public User Find(long valueA)
{
// Get the user
return AssignUserLevel(user);
}
public User AssignUserLevel(User user)
{
// set the user level of the user
}