使用Fluent NHibernate进行继承会产生双重结果

使用Fluent NHibernate进行继承会产生双重结果,nhibernate,fluent,Nhibernate,Fluent,我有以下情况: 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; } } 公共类登录 { 公共虚拟整数Id{get;set;} 公共虚拟字符串用户名{get;s

我有以下情况:

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; }
}
公共类登录
{
公共虚拟整数Id{get;set;}
公共虚拟字符串用户名{get;set;}
}
公共类用户:登录
{
公共IList帐户{get;set;}
}
如果我有两个映射(
ClassMap
ClassMap
),所有查询都会返回两个结果——我猜每个映射一个


有可能避免这种情况吗?我没有鉴别器值。用户有更多属性,因此我希望能够通过登录获取这些属性的子集。

由于用户扩展了登录,默认情况下,查询登录也将返回用户实例

为了避免这种情况,必须在XML映射中使用
polymorphics=“explicit”


对于流畅的映射,使用
polymorphics.Explicit()

也许为两个实体
Login
User
指定不同的数据表就可以了,因此您必须根据需要显式查询
Login
User
。否则,迭戈·米耶尔松的回答听起来不错

它由fluent nhibernate支持。请告诉我相应的方法,以便我将其添加到我的答案中。