gpt4 book ai didi

c# - Nhibernate:一个实体类的多个类映射

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:41 24 4
gpt4 key购买 nike

因此,我正在编写一个可重用的库。 Nhibernate 通过代码映射用于 ORM 操作。将有多个服务使用这个库,所以我希望这个库尽可能动态地运行。

将有多个服务,对于每个服务,都会在数据库中找到特定的表,这些表以其服务名称为前缀。 Unity 将注入(inject)此前缀,并且在仅使用一项服务时一切正常。

但现在我必须编写一个服务来读取和组合多个服务。所以这个 libdummy 项目将不得不用不同的表前缀多次映射。

public class LibDummy
{
public virtual int Id { get; set; }
public virtual string Guid { get; set; }
}

public class LibDummyMapping : ClassMapping<LibDummy>
{
public LibDummyMapping(ServiceName service)
{
Table($"{service.Name}_LibDummy");

Id(o => o.Id, m => m.Column("Id"));
Property(o => o.Guid, m => m.Column("Guid"));
}
}

我试过这样做:

public class FirstLibDummyMapping : LibDummyMapping
{
public FirstLibDummyMapping (ServiceName service) : base(service)
{
}
}

public class SecondLibDummyMapping : LibDummyMapping
{
public SecondLibDummyMapping (ServiceName service) : base(service)
{
}
}

但这会引发“重复的类/实体映射”错误。对于同一个实体有 2 个不同的类映射,它将抛出 Collection already mapped 错误。

理想情况下,我会拥有一个可以在库中本地使用的动态类映射,但我猜这不是一个选项??

对此有什么想法,或者这是行不通的吗?

最佳答案

NHibernate 专家有明确的答案吗?

关于c# - Nhibernate:一个实体类的多个类映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45373063/

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