gpt4 book ai didi

c# - Entity Framework 中没有外键的一对多关系?

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

标题可能具有误导性,但现在我似乎无法为我正在搜索的内容制定正确的词。

就目前而言,实体 A 有多个实体 B,但是实体 B 将包含实体 A 外键。

它是如何工作的?

起初,我想在我的模型中使用以下属性。

public virtual ICollection<B> Bs { get; set; }

但前提是 B 有指向 A 的外键。有什么建议吗?或者这不是一回事?如果 B 没有外键,我是否必须创建一个单独的模型来关联 A 和 B?

最佳答案

我不知道为什么实体 B 上不能有实体 A 的 FK,但是如果没有任何类型的引用约束,两个实体之间就不能遍历(即你不能提取所有 B 的每给定 A,并且您不能为给定的 B 提取 A)。我可以告诉你的最简单的方法是只添加那个 FK,但如果不可能,你将需要创建另一个实体,它只是作为你的实体 B 的代理/映射。BProxy 实体应该与B实体。

public class BProxy 
{
[Key]
public int Id {get; set;}
[Required]
public int EntityBId {get; set;}
public virtual EntityB {get; set;}
[Required]
public int EntityAId {get; set;}
public virtual EntityA {get; set;}
}

然后您的实体 A 将拥有一组 BProxy 对象而不是 B 对象

public virtual ICollection<BProxy> BProxies { get; set; }

这样,您可以创建通过 LINQ 双向遍历关系的查询。

关于c# - Entity Framework 中没有外键的一对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271334/

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