我有以下情况:
public class Login
{
public virtual int Id { get; set; }
public virtual string Username { get; set; }
}
public class User : Login
{
public IList<Account> Accounts { get; set; }
}
如果我有两个 map ( ClassMap<Login>
和 ClassMap<User>
),所有查询都会返回双结果 - 我猜每个 map 一个。
有可能避免这种情况吗?我没有鉴别器值。用户还有很多属性,因此我希望能够通过登录获取这些属性的子集。
最佳答案
由于 User 扩展了 Login,默认情况下查询 Login 也会返回 User 实例。
为了避免这种情况,必须在 XML 映射中使用polymorphism="explicit"
。
对于 Fluent 映射,请使用 Polymorphism.Explicit()
。
关于nhibernate - Fluent NHibernate 的继承产生双重结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4124649/