gpt4 book ai didi

c# - 如何建立适当的代码优先关系

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

我是 Entity Framework 的新手,使用 Code-First 模式而不是 DB-First 感觉更有控制力。

我想知道在以编程方式设置 ForeignKey 时更喜欢什么?实体之间的关系。

申报FK_是否更好?该类中与另一个类相关的属性,还是声明一个 IEnumerable<> 更好?相关类中的属性?

public class IRelateToAnotherClass
{
...
public int FK_IGetRelatedToByAnotherClass_ID { get; set; }
}

public class IGetRelatedToByAnotherClass
{
...
public IEnumerable<IRelateToAnotherClass> RelatedTo { get; set; }
}

最佳答案

这完全取决于您希望实体之间的关系类型(一对一、一对多、多对多);但是,是的,您应该声明外键属性。查看此网站 for some examples .

这是你的两个类的一对多:

public class IRelateToAnotherClass
{
public int Id { get; set; } // primary key
public virtual ICollection<IGetRelatedToByAnotherClass> IGetRelatedToByAnotherClasses { get; set; }
}

public class IGetRelatedToByAnotherClass
{
public int Id { get; set; } // primary key
public int IRelateToAnotherClassId { get; set; } // foreign key
public virtual IRelateToAnotherClass IRelateToAnotherClass { get; set; }
}

以及一些 Fluent API 映射:

modelBuilder.Entity<IGetRelatedToByAnotherClass>.HasRequired<IRelateToAnotherClass>(p => p.IRelateToAnotherClass).WithMany(p => p.IGetRelatedToByAnotherClasses).HasForeignKey(p => p.Id);

关于c# - 如何建立适当的代码优先关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435822/

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