我有以下情况:
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; }
}
如果我有两张地图(ClassMap<Login>
和ClassMap<User>
),则所有查询都会返回双重结果 - 我估计每张地图一张。
有可能避免这种情况吗?我没有鉴别器价值。用户有很多属性,所以我希望能够通过登录获得这些属性的子集。
答案 0 :(得分:4)
由于用户扩展了登录,因此查询登录默认情况下也会返回用户实例。
为避免这种情况,必须在XML映射中使用polymorphism="explicit"
。
对于Fluent映射,请使用Polymorphism.Explicit()
。
答案 1 :(得分:0)
为两个实体Login
和User
指定不同的数据表可能会有所帮助,因此您必须明确查询Login
或User
,具体取决于您的需求。否则,Diego Mijelshon的回答听起来不错!