EF插入多个相关表

时间:2012-07-13 20:23:27

标签: c# sql sql-server entity-framework

我正在尝试使用Linq / Entity Framework将数据从C#应用程序保存到数据库中。插入单个表很简单,但我不确定如何将数据插入到三个表中,这三个表都与自动增量标识互连? 这是一个刮,所以我采取了一个主题和所有帖子 - 每个 ThreadTitle ,每个帖子用户相关联(不是实际的表名。)

我的设计理念是将一个完整的线程写入内存,然后进行“批量”插入。为了减少负载,我希望有一些方法可以维持关系约束,而无需进行查找,多次插入等。

1 个答案:

答案 0 :(得分:1)

如果要保存两条相关的记录,因为在一个(A)中有一个FK到另一个(B),请执行以下操作:

  • 创建对象B

  • 将对象B添加到上下文

  • 创建对象A

  • 将A中的导航属性设置为B(A.B)为值B.

  • 将对象A添加到上下文

  • 保存上下文中的更改

您实际上不必将两个对象都添加到上下文中,一个就足够了,因为有相关的EF可以找到“树中的所有内容”。 EF将自行计算出首先插入的内容并设置正确的ID。

这是什么意思?希望这可以帮助。