在Linq-to-SQL中同时更新多个表

时间:2010-03-13 19:40:23

标签: c# .net linq linq-to-sql

如何使用Linq-to-SQL同时更新两个表?

var z = from a in db.Products
                join b in db.ProductSubcategories on 
                     a.ProductSubcategoryID  equals b.ProductSubcategoryID
                join d in db.ProductCategories on 
                     b.ProductCategoryID equals d.ProductCategoryID
                select new { ProductName = a.Name, ProductCategory = d.Name,     
                             ProductSubCategory = b.Name, Cost = a.StandardCost, 
                             discontinuedDate = a.DiscontinuedDate,     
                             ProductId=a.ProductID };

1 个答案:

答案 0 :(得分:2)

您必须更新每个表中的各个记录,然后执行db.SubmitChanges();

在您的查询中,输出是匿名类型,而不是连接到db上下文的表类型。

如果你考虑SQL,linq2sql的工作方式几乎相同。您可以选择具有连接的记录集,但不能直接在此更新。您需要将其分解并直接在Products,ProductCategories和ProductSubCategories上修改条目,这等于数据库中的表。

如果要在Products中修改产品,则必须修改该类型的属性,而不是匿名类型(连接类型)。

相关问题