gpt4 book ai didi

c# - 使用 Fluent nhibernate 自动映射继承

转载 作者:太空狗 更新时间:2023-10-29 21:54:33 24 4
gpt4 key购买 nike

我有这种情况:

public namespace ANamespace
{
public abstract class ABase:IABase
{
//properties
}

public abstract class A : ABase
{
//properties
}

public class A1 : A
{
//properties
}

public class A2 : A
{
//properties
}
}

如果我使用这个映射代码:

AutoMap
.AssemblyOf<ABase>()
.Where(e => e.Namespace == "ANamespace")
.IncludeBase<A>().IgnoreBase<ABase>();

只创建了一个表(具有ABase和A属性)。如果我删除 IncludeBase(),则会创建 A1 和 A2(具有所有属性)。

AutoMap
.AssemblyOf<ABase>()
.Where(e => e.Namespace == "ANamespace")
.IgnoreBase<ABase>();

如何编写映射以在我的数据库中包含类 A(具有所有 A 和 ABase 属性)、A1 和 A2(具有特定属性)但不包含类 ABase 的表?

最佳答案

三天后,我终于找到了解决这个问题的办法。有 IncludeBase<T>() 是不够的.您也必须映射基类。所以解决方案是:

AutoMap
.AssemblyOf<ABase>()
.Where(type=>type.IsSubclassOf(typeof(A)) || type==typeof(A))
.IncludeBase<A>();

希望对一些类似的问题有所帮助...

关于c# - 使用 Fluent nhibernate 自动映射继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com