如何使用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 };
答案 0 :(得分:2)
您必须更新每个表中的各个记录,然后执行db.SubmitChanges();
在您的查询中,输出是匿名类型,而不是连接到db上下文的表类型。
如果你考虑SQL,linq2sql的工作方式几乎相同。您可以选择具有连接的记录集,但不能直接在此更新。您需要将其分解并直接在Products,ProductCategories和ProductSubCategories上修改条目,这等于数据库中的表。
如果要在Products
中修改产品,则必须修改该类型的属性,而不是匿名类型(连接类型)。