c# - 这会将实体两次添加到数据库中吗?
问题描述
我有两个表,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 会因为两者之间的关系而知道它是同一个实体吗?
解决方案
这会将 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()
推荐阅读
- generics - Kotlin 类型不匹配,泛型
- reactjs - 如何动态使用 map 函数来挂钩 useState 属性
- exception - purescript - 对抛出异常的函数进行建模
- numpy - 尽管安装正确,但导入 Numpy 时出错的原因是什么
- r - 对于数据框中的每一行,打印包含小于或等于 x 的值的列名并计算剩余值,直到下一个最大值
- pytest - tox 运行错误的 Python 版本
- c# - C# LINQ 或 for 循环如何从数据库中获取数据源?
- r - 从另一个包含基于列的分层分类法创建数据框
- google-apps-script - 更改插件的可见性(Google 表格)
- r - quanteda (R) 中的 kwic 不能识别正则表达式模式中的多个单词