nhibernate - Fluent NHibernate 的继承产生双重结果

标签 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; }
}

如果我有两个 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/

相关文章:

nhibernate - 在 Fluent Nhibernate 中设置实体和关系的缓存?

c# - 从数据库问题下载 ASP.NET MVC 3 文件

c# - 将未映射的类与 NHibernate 命名查询一起使用

C++ 流畅的界面

c# - Entity Framework 无法更改关系,因为一个或多个外键属性不可为空

nhibernate - 流利的NHibernate映射可为空的枚举

c# - Quartz.net 调度程序内存泄漏

NHibernate、AutoMapper 和 ASP.NET MVC

c# - NHibernate Deleted 对象将被级联重新保存

c# - linq2db 如何迭代 Fluent 映射中的属性?