Обновление нескольких таблиц одновременно в Linq-to-SQL - PullRequest
0 голосов
/ 13 марта 2010

Как обновить две таблицы одновременно, используя 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 Ответ

2 голосов
/ 13 марта 2010

Вы должны обновить отдельные записи из каждой таблицы и затем выполнить db.SubmitChanges();

В вашем запросе вывод является анонимным типом, а не табличным типом, связанным с контекстом БД.

Если вы думаете с точки зрения SQL, linq2sql работает почти так же. Вы можете выбрать набор записей с объединением, но вы не можете обновлять непосредственно на этом. Вам нужно разбить его и изменить записи непосредственно в Products, ProductCategories и ProductSubCategories, что соответствует таблицам в вашей базе данных.

Если вы хотите изменить Продукт в Products, вам нужно изменить свойства этого типа, а не анонимного типа (объединенный тип).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...