Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Как сделать запрос UPDATE в две связанные таблицы?  [new]
Vasia4343
Member

Откуда:
Сообщений: 8
Вот когда я делаю запрос UPDATE в одну таблицу, то всё работает:

using (Test1Entities Context = new Test1Entities())
            {
                try
                {
                    Int32 UPDATE_String = Convert.ToInt32("30");
                    var UPDATE_Query = from c in Context.Таблица1
                                       where c.Возраст == UPDATE_String
                                       select c;
                    foreach (Таблица1 p in UPDATE_Query)
                    {
                        p.Возраст = Convert.ToInt32("3");
                    }
                    Context.SaveChanges();
                }
                catch (NotSupportedException exception)
                {
                    MessageBox.Show(exception.Message);
                }
            }


Если я пытаюсь сделать его для двух таблиц, то вылезает ошибка, что невозможно присвоить свойству значение, т.к. оно только для чтения. Что делать?

using (Test1Entities Context = new Test1Entities())
            {
                try
                {
                    var MULTI_UPDATE_Query = from a in Context.Таблица1
                                             join b in Context.Таблица2 on a.Номер equals b.Номер
                                             where a.Имя == "Влад" || b.Дом == "33"
                                             select new { PersonName = a.Имя, PersonHouse = b.Дом };
                    foreach (var p in MULTI_UPDATE_Query)
                    {
                        p.PersonName = "4";
                    }
                    Context.SaveChanges();
                }
                catch (NotSupportedException exception)
                {
                    MessageBox.Show(exception.Message);
                }
            }


P/S. Я не уверен в своём исключении NotSupportedException. Точно надо использовать его?
10 июн 12, 22:31    [12698152]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать запрос UPDATE в две связанные таблицы?  [new]
PA
Member

Откуда: Санкт-Петербург
Сообщений: 4146
Context.ExecuteCommand("UPDATE Таблица1 SET PersonName = '4' FROM Таблица1 a join Таблица2 b on a.Номер = b.Номер where a.Имя = 'Влад' or b.Дом == '33'");
11 июн 12, 12:21    [12698867]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить