使用实体框架6插入已断开的相关实体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用实体框架6插入已断开的相关实体相关的知识,希望对你有一定的参考价值。

我有一些XML文件的数据,我已经转置,我可以映射到我的实体。所以现在我想将它们全部保存到数据库中。

我正在阅读SO Can Entity Framework add many related entities with single SaveChanges()?

接受的答案没有太多信息,但这句话:

'如果您使用对象引用新创建的对象而不是ID,则不需要每次都保存更改:'

我的实体派生自数据集表,这些表都具有相关的Id列。

我猜测答案或多或少是相关实体是用这样的东西创建的:item.SubItem = new SubItem();而不是item.SubId = SubItem.Id;

因此,我应该遍历我的数据表并将我的数据集表转换为实体,方法是从表中创建对象并将它们添加到上下文中。

所以对于dt ['Items']中的每一行,如果row有一个子项新的SubItem {除了Id之外的所有值}。

任何示例代码将不胜感激。

答案

因此,在努力解决问题之后,我发现如果我创建了一个实体的新对象并将值映射到它,除了ID列之外,我可以将该对象分配回父对象。

伪代码如下:

myobject = new myobject(){ param1 = oldobject.param1}

myentityParent.ChildTableEntity.Add(myobject);

以上是关于使用实体框架6插入已断开的相关实体的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

使用实体框架将数据插入相关表中

尽管提供了值,但实体框架仍插入 null

更新映射到视图的实体框架实体

实体框架6无法插入记录

已添加具有相同键的实体框架核心 3.1.6 项