使用LINQ在单个查询中插入2个表

时间:2009-04-24 09:04:12

标签: linq

我需要在一个查询中插入两个表。这可以在LINQ中完成吗?

目前我使用insertonsubmit()2次。

2 个答案:

答案 0 :(得分:3)

如果您的表彼此具有主键/外键关系,那么您还有两个可以相互链接的对象:

InternetStoreDataContext db = new InternetStoreDataContext(); 

Category c = new Category();
c.name = "Accessories";
Product p = new Product();
p.name = "USB Mouse";
c.Products.Add(p);

//and finally
db.Categories.Add(c);
db.SubmitChanges();

在提交更改时添加对象和所有链接对象。

请注意,要使其正常工作,您必须在两个表中都有一个主键。否则LINQ不会为您提供链接可能性。

以下是使用LINQ to SQL的好例子:http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

答案 1 :(得分:2)

在您致电SubmitChanges之前,数据库提交不会发生。多次调用InsertOnSubmit没有任何实际成本 - 为什么不这样做?

这仍将导致两个TSQL INSERT命令 - 它无法在单个常规INSERT命令中插入两个表。