Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Entity Framework вложенный foreach, необходимо сделать выборку из объекта 
:(
    Опции темы
EASports
Дата 11.7.2018, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 14.12.2006

Репутация: нет
Всего: нет



Всем привет!
Давно не могу решить проблему выборки данных.
Копирую записи связанных таблиц в БД.
Есть объект Land, который по полю Id связан один-ко-многим с таблицей Cat. Cat, в свою очередь, связана с таблицей Props один-ко-многим по полю Id.
Упрощенно это так:
Код

class Land
{
public int Id;
public string Name;
}

class Cat
{
public int Id;
public string Name;
public int LandId;
}

class Prop
{
public int Id;
public string Name;
public int CatId;
}



Необходимо произвести копирование объекта Land со всеми связанными полями в связанных таблицах.
То есть типа
Код

int x = 1;
Land oldland = db.Lands.Where(c => c.Id == x).FirstOrDefault();
Land newland = db.Lands.Create();
newland.Name = oldland.Name;
db.Lands.Add(newland);

IEnumerable<Cat> oldcats = db.Cats.Where(c => c.LandId == oldland.Id);
foreach (Cat cat in oldcats)
{
Cat ct = db.Cats.Create();
ct.Name = cat.Name;
ct.LandId = cat.LandId;
db.Cats.Add(ct);

IEnumerable<Prop> oldprops = db.Props.Where(c => c.CatId == cat.Id);
foreach(Prop prop in oldprops) /*вот здесь ругается на то, что объект DataReader не закрыт*/
{
Prop pr = db.Props.Create();
pr.Name = prop.Name;
pr.CatId = prop.CatId;
db.Props.Add(pr);
}
}

db.SaveChanges();


Подскажите, что нужно сделать, чтобы скопировать это "вложенный" объект? Ругается при попытке сделать вложенный foreach



Это сообщение отредактировал(а) EASports - 11.7.2018, 20:14
PM MAIL   Вверх
mrstanley
Дата 17.8.2018, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 31.7.2018

Репутация: нет
Всего: нет



с бд разбираться, в ней что-то не. связи непонятные ненмого
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1138 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.