实体框架核心插入父实体并更新其嵌套的子实体

时间:2018-03-20 06:58:01

标签: c# entity-framework .net-core entity-framework-core

这是我的情况,我需要实现一个同步系统,在客户端创建数据,然后将它们以JSON格式发送到服务器,然后保存到临时位置(NoSql)。还有另一个进程(用c#dotnet核心编写),它读取临时记录并将它们插入到MSSQL中。

让我展示一下我的实体的简化版

class Company
{
    public string Name { get; set; }
    public HashSet<Worker> Workers { get; set; }
}

class Worker
{
    public string LastName { get; set; }
    public Company Company { get; set; }
}

当我尝试将Worker实体插入MSSQL时,我不知道我的公司实体是否已经同步。 两种可能的情况:

  • 公司存在。插入此Worker对象会导致重复键异常
  • 公司不存在。插入可以完成,但随后的插入操作成为第一种情况。

如果我在插入之前没有手动提取公司实体并检查其存在,我该如何解决这个问题。

我的目标是

  • 插入具有公司外键的worker,如果外键存在,则更新(或忽略)它。
  • 实现这一点而不需要手动处理外键,因为有很多实体,这样做会使代码无法管理......

希望我提供了所需的信息,如果没有,请告诉我,我会更新我的问题。谢谢!

0 个答案:

没有答案