gpt4 book ai didi

c# - 来自不同程序集的 Fluent nhibernate automap 子类

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:19 25 4
gpt4 key购买 nike

我需要做的是我的抽象页面类的自动映射子类。我需要在我获得运行时(在初始化阶段)的程序集列表中找到它们。我没有对我的映射程序集中的程序集的任何引用。

我的页面类看起来像这样:

public abstract class Page : EntityBase
{
public virtual int Id { get; protected set; }
public virtual Page Page { get; set; }
//Other properties
}

我的映射是这样的:

var persistenceModel = new AutoPersistenceModel();
_assemblies.ForEach(x => persistenceModel.AddEntityAssembly(x));
persistenceModel.Setup(x =>
{
x.SubclassStrategy = y => SubclassStrategy.Subclass;
x.DiscriminatorColumn = y => "Type";
})
.IncludeBase(typeof(Page))
.OverrideAll(x => x.IgnoreProperties(y => typeof(Page)
.IsAssignableFrom(y.ReflectedType) && y.ReflectedType != typeof(Page)))
.Where(y => typeof(EntityBase).IsAssignableFrom(y));

_assemblies 是用于在其中搜索可映射实体的程序集列表。它包含我的页面类的程序集以及一个或多个其他程序集,这些程序集都引用了基本程序集(具有我的页面类的那个)。

当我将一个从我的页面类继承的类添加到与我的页面类相同的程序集时,一切正常并且它的映射正确。但是,如果我将一个程序集添加到在运行时加载的其他程序集之一,我就会遇到问题。我收到此错误:

“尝试在已添加的情况下添加多对一‘页面’。”

它找到了类,但出于某种原因试图将其映射为 Page 或其他东西。但是页面类已经映射,所以我得到了那个错误。那是我的猜测。有谁知道我是否可以以任何方式解决这个问题?或者知道解决方案?

最佳答案

我刚找到 this关联。似乎这还不可能。

编辑

现在,最新版本的 fluent nhibernate 已修复此问题。

关于c# - 来自不同程序集的 Fluent nhibernate automap 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2077785/

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