我正在尝试使用Linq / Entity Framework将数据从C#应用程序保存到数据库中。插入单个表很简单,但我不确定如何将数据插入到三个表中,这三个表都与自动增量标识互连? 这是一个刮,所以我采取了一个主题和所有帖子 - 每个 ThreadTitle ,每个帖子与用户相关联(不是实际的表名。)
我的设计理念是将一个完整的线程写入内存,然后进行“批量”插入。为了减少负载,我希望有一些方法可以维持关系约束,而无需进行查找,多次插入等。
答案 0 :(得分:1)
如果要保存两条相关的记录,因为在一个(A)中有一个FK到另一个(B),请执行以下操作:
创建对象B
将对象B添加到上下文
创建对象A
将A中的导航属性设置为B(A.B)为值B.
将对象A添加到上下文
保存上下文中的更改
您实际上不必将两个对象都添加到上下文中,一个就足够了,因为有相关的EF可以找到“树中的所有内容”。 EF将自行计算出首先插入的内容并设置正确的ID。
这是什么意思?希望这可以帮助。