Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq-to-Sql как изменить порядок выполнения SubmitChanges / 25 сообщений из 35, страница 1 из 2
07.08.2009, 17:43
    #36132922
OldWoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
Привет всем! Оказывается SubmitChanges сперва пытается выполнить вставки а потом удаления!! Правильный порядок обратный! М.б. есть настройка управляющая процессом выполнения SubmitChanges?
...
Рейтинг: 0 / 0
10.08.2009, 17:26
    #36135610
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
почему ты уверен что обратный порядок "правильнее"?
если очень надо, удали, засабмить, вставь, засабмить, правда потеряешь транзакционность операции
...
Рейтинг: 0 / 0
02.09.2009, 09:47
    #36173996
OldWoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
зыпочему ты уверен что обратный порядок "правильнее"?
если очень надо, удали, засабмить, вставь, засабмить, правда потеряешь транзакционность операции
Спасибо за отклик! Case study
Скажем пюзер редактирует свой заказ - ограничение уник артикула товара в заказе. Если сперва удалит товар "пулемёт", а потом вспомнит что без него ни как и введёт, то правильное сохранение DeleteInsertUpdate

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

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

Если вы не собираетесь сохранять товар "пулемёт", просто отсоедините его от Контекста.
...
Рейтинг: 0 / 0
03.09.2009, 14:37
    #36176885
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
Код: 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
03.09.2009, 15:27
    #36177062
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
Можно отсоединять даже в переопределённом 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
03.09.2009, 16:03
    #36177172
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
OldWokerСкажем юзер редактирует свой заказ

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

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

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

InsertDelete не будет делать лишние удаления и вставку. Он просто пошлет тебя и все.
...
Рейтинг: 0 / 0
03.09.2009, 18:46
    #36177627
OldWoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
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
04.09.2009, 02:13
    #36178028
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
OldWokerТо же самое и в Entity Framework!

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


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


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

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

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

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


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

+1

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

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

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

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

Код: plaintext
1.
DataContext.Transaction 

можно и через using (var ts = new TransactionScope()) { ... }, да в общем как угодно.
...
Рейтинг: 0 / 0
15.09.2009, 15:26
    #36196979
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
OldWokerещё вопросик - есть ли пример, когда порядок InsertDeleteUpdate единственно верный?
Может и есть, но поскольку я не задумывался, значит у меня все примеры такие. Ну хотя например, на твою запись ссылается ключ, тебе нужно заменить на другую запись. Единственный вариан - это вначале вставить новую, потом перенести ключ, и только потом удалить старую.
...
Рейтинг: 0 / 0
15.09.2009, 17:22
    #36197393
OldWoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq-to-Sql как изменить порядок выполнения SubmitChanges
зыOldWokerещё вопросик - есть ли пример, когда порядок InsertDeleteUpdate единственно верный?
Может и есть, но поскольку я не задумывался, значит у меня все примеры такие. Ну хотя например, на твою запись ссылается ключ, тебе нужно заменить на другую запись. Единственный вариан - это вначале вставить новую, потом перенести ключ, и только потом удалить старую.
+5
да для мастер-таблиц с подчинёнными это единственный правильный алгоритм!
ms-help://MS.MSDNQTR.v90.ru/dv_raddata/html/33076d42-6b41-491a-ac11-6c6339aea650.htm
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq-to-Sql как изменить порядок выполнения SubmitChanges / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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