powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity и Detach()
3 сообщений из 3, страница 1 из 1
Entity и Detach()
    #38470920
stim24
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавляю данные в таблицы Skl_DocumentPrix и Skl_DocumentPrixNom
данные таблицы связаны.
Код: c#
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.
29.
30.
31.
32.
33.
DocumentPrix Table=new DocumentPrix();
Table.SchetF = cSchetF.Text;
Table.DateF=cDateF.Value;

            for (int i = 0; i < dataGridTov.RowCount; i++)
            {
                Skl_DocumentPrixNom n = new Skl_DocumentPrixNom();
                
                n.id_Nomenklatura=(int)dataGridTov.Rows[i].Cells["id_Nomenklatura"].Value ;
                n.CenaPos=(decimal)dataGridTov.Rows[i].Cells["CenaPos"].Value;
                
                Table.Skl_DocumentPrixNom.Add(n);

            }


           CData.Model.Skl_DocumentPrix.AddObject(Table);

            bool err = false;

            try
            {
                CData.Model.SaveChanges();
            }
            catch (Exception ex)
            {
                CMessage.Error("Ошибка:" + ex.Message + "   " + ex.InnerException.Message);
                CData.Model.Detach(Table);
                err = true;
            }
            finally
            {
            }



И проверяю на ошибки.
Если ошибка при добавлении то вызываю Detach() к измененным данным.
Но почему-то это срабатывает только для Table(DocumentPrix), а набор данных Table.DocumentPrixNom остается как его Detach сделать?
Иначе всегда при вызове SaveChanges() будет ошибка.
...
Рейтинг: 0 / 0
Entity и Detach()
    #38471019
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Entity и Detach()
    #38472302
stim24
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там ничего не понял. Сделал так.
Код: c#
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.
 try
            {
                CData.Model.SaveChanges();
                CData.Model.Refresh(RefreshMode.ClientWins, CData.Model.Skl_DocumentPrix);
            }
            catch (Exception ex)
            {
                CMessage.Error("Ошибка:" + ex.Message + "   " + ex.InnerException.Message);
                List<Skl_DocumentPrixNom> tt=new List<Skl_DocumentPrixNom>();
                foreach (Skl_DocumentPrixNom i in Table.Skl_DocumentPrixNom)
                {
                    tt.Add(i);
                }
                foreach (Skl_DocumentPrixNom i in tt)
                {
                    CData.Model.Detach(i);
                }
                CData.Model.Detach(Table);
                
                CData.Model.Refresh(RefreshMode.ClientWins, CData.Model.Skl_DocumentPrix);
                CData.Model.Refresh(RefreshMode.ClientWins, CData.Model.Skl_DocumentPrixNom);
                CData.Model.Refresh(RefreshMode.StoreWins, CData.Model.Skl_DocumentPrix);
                CData.Model.Refresh(RefreshMode.StoreWins, CData.Model.Skl_DocumentPrixNom);

                err = true;
            }


Вроде работает но верно ли?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity и Detach()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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