首页 > 解决方案 > 这会将实体两次添加到数据库中吗?

问题描述

我有两个表,SR_Leagues 和 SR_Programs。SR_Programs 与 SR_Leagues 具有一对多的关系。

我有以下使用实体框架的代码:

var newProgram = new SR_Programs
{
    // Set Properties
    Leagues = new List<SR_Leagues>()
};

ctx.SR_Programs.Add(newProgram);

SR_Leagues tmpLeague = new SR_Leagues
{
     // Set properties
};

然后这是我要问的部分:

ctx.SR_Leagues.Add(tmpLeague);

if (newProgram.Leagues != null)
{
    newProgram.Leagues.Add(tmpLeague);
}

然后我关闭数据库上下文

ctx.SaveChanges();

这会将tmpLeague实体两次添加到数据库中吗?一旦附加到newProgram并添加到SR_Leagues表中?

或者 EF 会因为两者之间的关系而知道它是同一个实体吗?

标签: c#entity-framework

解决方案


这会将 tmpLeague 实体添加到数据库中两次吗?

不,但你不需要这样做

或者 EF 会因为两者之间的关系而知道它是同一个实体吗?

是的,但你不需要这样做

var newProgram = new SR_Programs
{
    // Set Properties
    Leagues = new List<SR_Leagues>()
};

ctx.SR_Programs.Add(newProgram);

newProgram.Leagues.Add(new SR_Leagues
{
     // Set properties
});


await context.SaveChangesAsync()

推荐阅读