gpt4 book ai didi

c# - 将一个实体映射到多个表

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

我有一个与 Fluent NHibernate 相关的问题。我无法描述将一个实体映射到多个表的架构。数据库结构如下:

Create table CeTypes (Id int not null PRIMARY KEY, Name nvarchar(100) not null)
Create table CeValues (Id int not null PRIMARY KEY, Name nvarchar(100) not null)
Create table Ces (Id int not null PRIMARY KEY, CeType_id int not null FOREIGN KEY REFERENCES CeTypes(Id), CeValue_id int not null FOREIGN KEY REFERENCES CeTypes(Id))

有以下实体:

public class Ce
{
public virtual int Id { get; set; }
public virtual string Type { get; set; }
public virtual string Value { get; set; }
}

CeType、CeValue实体域中并没有。我不知道如何描述映射Ce实体。

试图描述:

public class CeMap : ClassMap<Ce>
{
public CeMap()
{
Table("Ces");
Id(c => c.Id);

Join("CeTypes", m => m.Map(ce => ce.Type).Column("Name"));
Join("CeValues", m => m.Map(ce => ce.Value).Column("Name"));
}
}

但是有了这样的方案CeType,CeValue表应该有一个字段Ce_id。如何描述当前数据库结构下的方案映射?

最佳答案

当我第一次开始使用 nHibernate 时,我尝试过做同样的事情,但找不到实现它的方法。我实际上不相信您可以将多个表映射到单个对象。通常每张表有一个实体。每个实体都将映射到它们的表,并且它们之间会有引用/有很多链接。

您可能会发现,从长远来看,每个表都有一个实体也更好,因为它允许更简单地映射到数据库。

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

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