实体框架核心一对多关系

时间:2018-11-09 10:32:02

标签: entity-framework asp.net-mvc-4 entity-framework-core

我有两个模型DestinationEntity和SourceEntity,我要查看的是我首先需要获取目标详细信息,之后我需要获取源详细信息,因为我想选择多个目标并保存两个都有单独的CRUD条目,如何我可以做到吗

源可以有多个目的地,而目的地可以有一个源

这是我的实体

public class DestinationEntity
{
public int ID {get; set;}
public string DName {get; set;}
public string DPath {get; set;}

public SourceEntity source {get; set;} 
}

public class SourceEntity
{
public int ID {get; set;}
public string SName {get; set;}
public string SPath {get; set;}

public ICollection<DestinationEntity> Destinations {get; set;} 
}

1 个答案:

答案 0 :(得分:0)

创建和删除非常明显,更新是一个棘手的问题。基本上,有三种方法。由于每个目的地都必须有一个并且只有一个来源。

一个,删除所有目标,然后将它们重新添加到源。这将删除“孤立的”目的地,这是最简单的暴力方法。

两个,让用户界面传达添加了哪些目的地和删除了哪些目的地。或者,您可以通过检查输入中的FK(null = new)来自己检测它,然后将现有值与保存的值进行比较,然后删除“已删除”的目的地。更加棘手。

三,使用JSONPatchDocument格式,该格式提供了有关如何更新保存的实体的路线图。