powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Удаление связанных объектов, LINQ to SQL
1 сообщений из 1, страница 1 из 1
Удаление связанных объектов, LINQ to SQL
    #35891882
Red Wind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Начал изучать LINQ to SQL. И сразу же наткнулся на неприятную особенность. После удаления каждого объекта например northwind.Orders.DeleteAllOnSubmit(customer.Orders) нужно вызывать метод northwind.SubmitChanges() То есть если я сначала вызову northwind.Orders.DeleteAllOnSubmit(customer.Orders) потом northwind.Customers.DeleteOnSubmit(customer) а уже после этого northwind.SubmitChanges() то падает ошибка:
The DELETE statement conflicted with the REFERENCE constraint "FK_Orders_Customers". The conflict occurred in database "Nothwind" table "dbo.Orders" column 'CustomerID'.
Вот код который работает. Но мне не нравиться то что нужно два раза вызывать метод northwind.SubmitChanges(); Как этого избежать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
        private static void DeleteCustomer(string id)
        {
            var customer = (from c in northwind.Customers
                            where c.CustomerID == id
                            select c).Single();

            northwind.Orders.DeleteAllOnSubmit(customer.Orders);
            try
            {
                northwind.SubmitChanges();
                Console.WriteLine(String.Format("Customer {0} deleted", id));
            }
            catch (ChangeConflictException)
            {
                northwind.ChangeConflicts.ResolveAll(RefreshMode.KeepChanges);
            }

            northwind.Customers.DeleteOnSubmit(customer);
            try
            {
                northwind.SubmitChanges();
                Console.WriteLine(String.Format("Customer {0} deleted", id));
            }
            catch (ChangeConflictException)
            {
                northwind.ChangeConflicts.ResolveAll(RefreshMode.KeepChanges);
            }
        }
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Удаление связанных объектов, LINQ to SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]