我想从一个C#应用程序使用Linq /实体框架将数据保存到数据库中。插入到单个表格非常简单,但我不确定如何将数据插入到三个表格中,这些表格都与自动增量标识相互关联? 这是一刮,所以我以一个线程,它的所有帖子 - 每个ThreadTitle每个邮政与用户(而不是实际的表名)相关联。英菲插入多个相关的表
我的设计思路是将完整的线程拖入内存中,然后执行“批量”插入操作。为了减少负载,我希望有一些方法来保持关系约束,而不需要查找,多次插入等。
我想从一个C#应用程序使用Linq /实体框架将数据保存到数据库中。插入到单个表格非常简单,但我不确定如何将数据插入到三个表格中,这些表格都与自动增量标识相互关联? 这是一刮,所以我以一个线程,它的所有帖子 - 每个ThreadTitle每个邮政与用户(而不是实际的表名)相关联。英菲插入多个相关的表
我的设计思路是将完整的线程拖入内存中,然后执行“批量”插入操作。为了减少负载,我希望有一些方法来保持关系约束,而不需要查找,多次插入等。
如果您想要保存两个相关的记录,因为在一个中存在FK(A )到另一个(B),执行以下操作:
创建对象B
对象B上下文添加
创建对象A
设置导航属性在一个指向B(AB)重视B.
对象A添加到关联
保存更改上下文
你不实际上必须将两个对象添加到上下文中,一个就足够了,因为有相关的EF可以在树中找到所有内容。 EF将自行确定要先插入的内容并设置正确的ID。
这是你的意思吗?希望这可以帮助。
您是使用代码优先还是数据库优先? – 2012-07-13 20:43:31
我不知道你在问什么......我有我的数据库设置PK/FK的约束,我想刮所有数据到内存中,然后不经常插入到数据库 – Volvox 2012-07-13 20:59:27
Database-first是当您使用EF从现有数据库创建实体数据模型时。使用代码优先,您首先设计您的类,然后使用EF基于这些类生成数据库。 – 2012-07-13 21:09:49