我需要在一个查询中插入两个表。这可以在LINQ中完成吗?
目前我使用insertonsubmit()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
命令中插入两个表。