powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq-to-Sql как изменить порядок выполнения SubmitChanges
35 сообщений из 35, показаны все 2 страниц
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36132922
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем! Оказывается SubmitChanges сперва пытается выполнить вставки а потом удаления!! Правильный порядок обратный! М.б. есть настройка управляющая процессом выполнения SubmitChanges?
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36135610
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему ты уверен что обратный порядок "правильнее"?
если очень надо, удали, засабмить, вставь, засабмить, правда потеряешь транзакционность операции
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36173996
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыпочему ты уверен что обратный порядок "правильнее"?
если очень надо, удали, засабмить, вставь, засабмить, правда потеряешь транзакционность операции
Спасибо за отклик! Case study
Скажем пюзер редактирует свой заказ - ограничение уник артикула товара в заказе. Если сперва удалит товар "пулемёт", а потом вспомнит что без него ни как и введёт, то правильное сохранение DeleteInsertUpdate

То же если есть ограничение по кол-ву товара. При редактировании заказ с товаром имеющим 0 остаток, опят же, удаление и вновь встака такой позиции требует при сохранении порядка DeleteInsertUpdate
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36174539
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы написал отдельно поставляемую хранимую процедуру и заюзал бы ее как метод Вашего класса. Транзакционность в Вашей задаче - превыше всего.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36175034
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ бы написал отдельно поставляемую хранимую процедуру и заюзал бы ее как метод Вашего класса. Транзакционность в Вашей задаче - превыше всего.
Можно и методами Linq2Sql, но удивительно чего ради встроен неверный порядок? То же самое и в Entity Framework! Может есть соображения за InsertDelete?
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36175096
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWokerТо же самое и в Entity Framework!
Чушь. Просто отсоединяйте ненужные сущности от контекста.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36176696
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredOldWokerТо же самое и в Entity Framework!
Чушь. Просто отсоединяйте ненужные сущности от контекста.
Извините не понял - что чушь? И зачем отсоединять? Речь идёт об одной таблице и порядка сохпанеия пакета изменений в ней. Поясните если не трудно, что имелось ввиду
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36176800
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWoker,

контекст для того и создан, чтобы избежать лишних обращений к базе.

Если вы не собираетесь сохранять товар "пулемёт", просто отсоедините его от Контекста.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36176885
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
DummyContext _context = new DummyContext();
            Goods goods1 = new Goods 
            {
                ID = Guid.NewGuid(),
                Name = "Пулемёт1"
            };

            Goods goods2 = new Goods
            {
                ID = Guid.NewGuid(),
                Name = "Пулемёт2"
            };
            _context.AddToGoods(goods1);
            _context.AddToGoods(goods2);
            _context.Detach(goods1);
            _context.SaveChanges();

Сохранится только второй пулемёт.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36177062
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно отсоединять даже в переопределённом SavingChanges

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public partial class DummyEntities : global::System.Data.Objects.ObjectContext
    {
        partial void OnContextCreated()
        {
            this.SavingChanges += new System.EventHandler(mySavingChanges);
        }
        public void mySavingChanges(object sender, System.EventArgs e)
        {
            var osm = this.ObjectStateManager;
            foreach (var entry in osm.GetObjectStateEntries(EntityState.Added | EntityState.Modified))
            {
                if (entry.Entity is Goods)
                {
                    var goods1= (Goods)entry.Entity;                    
                    this.Detach(goods1);
                }
            }
      
                

        }
    }
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36177172
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWokerСкажем юзер редактирует свой заказ

OldWokerРечь идёт об одной таблице и порядка сохранеия пакета изменений в ней.

Никак не одной.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36177313
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWokerзыпочему ты уверен что обратный порядок "правильнее"?
если очень надо, удали, засабмить, вставь, засабмить, правда потеряешь транзакционность операции
Спасибо за отклик! Case study
Скажем пюзер редактирует свой заказ - ограничение уник артикула товара в заказе. Если сперва удалит товар "пулемёт", а потом вспомнит что без него ни как и введёт, то правильное сохранение DeleteInsertUpdate

То же если есть ограничение по кол-ву товара. При редактировании заказ с товаром имеющим 0 остаток, опят же, удаление и вновь встака такой позиции требует при сохранении порядка DeleteInsertUpdate

InsertDelete не будет делать лишние удаления и вставку. Он просто пошлет тебя и все.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36177627
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredМожно отсоединять даже в переопределённом SavingChanges

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public partial class DummyEntities : global::System.Data.Objects.ObjectContext
    {
        partial void OnContextCreated()
        {
            this.SavingChanges += new System.EventHandler(mySavingChanges);
        }
        public void mySavingChanges(object sender, System.EventArgs e)
        {
            var osm = this.ObjectStateManager;
            foreach (var entry in osm.GetObjectStateEntries(EntityState.Added | EntityState.Modified))
            {
                if (entry.Entity is Goods)
                {
                    var goods1= (Goods)entry.Entity;                    
                    this.Detach(goods1);
                }
            }
      
                

        }
    }

Мне нравится что поколение Next уже не отличает Linq2Sql от EF. Разговор пока о SQL2Linq и
как в нём правильно сохранить пакет изменеий

почему по умолчанию выбран столь странный порядок!
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36178028
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWokerТо же самое и в Entity Framework!

OldWoker
Мне нравится что поколение Next уже не отличает Linq2Sql от EF. Разговор пока о SQL2Linq и


Старый, ты сам определись уже чего хочешь.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36178031
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWoker
как в нём правильно сохранить пакет изменеий


Тебе 2 вменяемых варианта:
Субмитить по очереди (зы), хранимки (МСУ).

OldWoker
почему по умолчанию выбран столь странный порядок!

LOL. Пиши свой ORM.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36178035
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWoker
старый программер большой друг Bill_G
всё ясно.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36178237
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredOldWokerТо же самое и в Entity Framework!

OldWoker
Мне нравится что поколение Next уже не отличает Linq2Sql от EF. Разговор пока о SQL2Linq и


Старый, ты сам определись уже чего хочешь.

+1

Я тоже не очень понял причину наезда на ув. буреда .
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36181668
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Ну блин, затоптали! Вопрос был - вариант InsertDelet неверный, почему MS упорно за него держится во всех средствах? Как объехать на кривой правильно указал господин Зы ( не в первый раз)
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36182934
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWokerМСУ,

Ну блин, затоптали! Вопрос был - вариант InsertDelet неверный, почему MS упорно за него держится во всех средствах? Как объехать на кривой правильно указал господин Зы ( не в первый раз)
Если Вас устроит решение с нарушением атомарности sql-батча, то в чем проблема - используйте этот вариант.
Лично я выбрал бы вариант более надежный, особенно, когда речь идет об остатках товара на складе и пр.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36184487
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TransactionScope ещё никто не отменял
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36196913
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыTransactionScope ещё никто не отменял
я так и понял - окружаем транзакцией

Код: plaintext
1.
DataContext.Transaction 
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36196919
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё вопросик - есть ли пример, когда порядок InsertDeleteUpdate единственно верный?
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36196968
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWokerзыTransactionScope ещё никто не отменял
я так и понял - окружаем транзакцией

Код: plaintext
1.
DataContext.Transaction 

можно и через using (var ts = new TransactionScope()) { ... }, да в общем как угодно.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36196979
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWokerещё вопросик - есть ли пример, когда порядок InsertDeleteUpdate единственно верный?
Может и есть, но поскольку я не задумывался, значит у меня все примеры такие. Ну хотя например, на твою запись ссылается ключ, тебе нужно заменить на другую запись. Единственный вариан - это вначале вставить новую, потом перенести ключ, и только потом удалить старую.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36197393
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыOldWokerещё вопросик - есть ли пример, когда порядок InsertDeleteUpdate единственно верный?
Может и есть, но поскольку я не задумывался, значит у меня все примеры такие. Ну хотя например, на твою запись ссылается ключ, тебе нужно заменить на другую запись. Единственный вариан - это вначале вставить новую, потом перенести ключ, и только потом удалить старую.
+5
да для мастер-таблиц с подчинёнными это единственный правильный алгоритм!
ms-help://MS.MSDNQTR.v90.ru/dv_raddata/html/33076d42-6b41-491a-ac11-6c6339aea650.htm
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36197415
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWoker
+5
да для мастер-таблиц с подчинёнными это единственный правильный алгоритм!
ms-help://MS.MSDNQTR.v90.ru/dv_raddata/html/33076d42-6b41-491a-ac11-6c6339aea650.htm
Неужели? А если просто update родительской записи сделать?
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36197551
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно и апдейт, но не всегда :) особенно сложно описывать алгоритм создания новой сложной структуры в замен старой, если одно из звеньев нужно не создать а взять старое и изменить.
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36197604
Если можно, укажите веб ссылку на эту статью или ее название
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36198529
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПетровскийЕсли можно, укажите веб ссылку на эту статью или ее название
начиная от http://msdn.microsoft.com/ru-ru/library/bb384426.aspx и далее связаннон изложение о порядке применения InsertDeleteUpdate
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36198532
OldWoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыможно и апдейт, но не всегда :) особенно сложно описывать алгоритм создания новой сложной структуры в замен старой, если одно из звеньев нужно не создать а взять старое и изменить.
Конечно проще Insert + delete чем update
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36200260
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldWoker,

update=insert+delete
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36201203
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов
update=insert+delete
что за глупая игра слов? апдейт есть апдейт, атомарная, можно сказать, операция
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36202673
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,
до триггера :):):)
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36203541
Сахават Юсифовзы,
до триггера :):):)
Если Вы про MSSQL и логические таблицы inserted deleted то рекомендую сообщить о Вашем открытии для начала в соответствующей конфе. А там кто знает....
...
Рейтинг: 0 / 0
Linq-to-Sql как изменить порядок выполнения SubmitChanges
    #36203826
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петровский,

пошел бы т ыкуды нибудь отдыхать для начала
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq-to-Sql как изменить порядок выполнения SubmitChanges
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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