gpt4 book ai didi

c# - 如何首先通过代码要求多对多关系

转载 作者:行者123 更新时间:2023-12-02 17:51:22 25 4
gpt4 key购买 nike

我使用 Entity Framework 和 Code First 来创建数据库等。

public class Company : Entity // Entity contains an ID and a RowVersion
{
// some Properties
//
public virtual ICollection<Profile> Profiles { get; set; }
}

// No Attributes here, because this Model has to be reusable
public class Profile : Entity
{
// some Properties
//
public virtual ICollection<Company> Companies { get; set; }
}

我试图要求一家公司拥有一个管理该公司的配置文件 (cn:n)。我有一些“业务逻辑”负责编辑实体,主要是因为验证部分。该逻辑将验证是否设置了所需的关系。我这里有两个问题:

数据库是否应该具有可选的关系(为了编辑方便)? “业务逻辑”必须是唯一编辑数据库的人。

否则我将如何设置所需的关系?


当然,我不介意你去一点,在我看来,互联网上与 EF 的多对多关系太少了。 (我是新来的,所以不要介意这是否违反了某些规则)


编辑我知道第三张表的方式,但这就是我的观点:How to require many to many relation with code first

最佳答案

在设计数据库时,当出现这种情况(多对多)时,请使用附加表来分隔这方面。例如,我们有两个表 t1 和 t2,其中 t1 与 t2 多对多,创建一个相关的表 t3:t1 一对多到 t3 和 t2 一对多 t3。

根据您的情况,您需要创建一个额外的类,如下所示:

public class CompanyProfile {
public virtual ICollection<Company> Companies { get; set; }
public virtual ICollection<Profile> Profiles { get; set; }
}

在您的学员 Company 和 Profile 中创建 CompanyProfile 类的链接。

关于c# - 如何首先通过代码要求多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034357/

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