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

Откуда:
Сообщений: 225
Подскажите пожалуйста вот например есть сущность у которой есть поля которые ссылаются на другие таблицы, как в таком случае добавить в эту таблицу запись сославшись на существующие из других таблиц (справочников).
Допустим есть база кинотеатр и в ней сущность Фильм, у фильма есть режиссер и жанр которые уже лежат в других таблицах.
Кода я делаю вот так:
var фильм = new Фильм();
фильм.Режисер = new Режисер { id = 3};
фильм.Жанр = new Жанр {id = 2};
кинотеатр.Фильмы.Add(фильм);
кинотеатр.SaveChange();

То в таблицу Жанры и Режисеры добавляются новые записи с новым ID (не стем существующим который указан) и пустым содержимым и потом надвязываются к новой записи в таблице Фильм.

Если я делаю вот так:

var фильм = new Фильм();
фильм.Режисер.ID = 3;
фильм.Жанр.ID = 2;
кинотеатр.Фильмы.Add(фильм);
кинотеатр.SaveChange();

То выскакивает рантаймовая ошибка мол типа фильм.Режисер фильм.Жанр не указывают на объект, как в таком случает добавляют записи обычно ?
8 фев 14, 13:18    [15539007]     Ответить | Цитировать Сообщить модератору
 Re: Как добавлять записи в сложну сущность в Entity Framework 4 ?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21986
вместо

фильм.Режисер.ID = 3;

должно быть

фильм.Режисер = экземпляр_объекта_режиссер

этот экземпляр можно получить как созданием нового, так и выборкой текущего (например выборкой с помощью Linq из объекта Режиссеры, по каким-то критериям (например ID=3. однако, непосредственная работа с ID - признак того, что ты выбрал неправильный подход к работе с моделью - ID в большинстве случаев волновать не должны))
8 фев 14, 14:18    [15539141]     Ответить | Цитировать Сообщить модератору
 Re: Как добавлять записи в сложну сущность в Entity Framework 4 ?  [new]
megazoid007
Member

Откуда:
Сообщений: 225
Shocker.Pro, спасибо бро за наводку
9 фев 14, 10:08    [15541873]     Ответить | Цитировать Сообщить модератору
 Re: Как добавлять записи в сложну сущность в Entity Framework 4 ?  [new]
megazoid007
Member

Откуда:
Сообщений: 225
Shocker.Pro, а можно ли как то вручную сформировать правильные ассоциируемый объект, а не каждый рас доставать его из базы:
фильм.Режисер = Кинотеатр.Режисеры.Single(s => s.РежисерID == 2); ?
9 фев 14, 10:13    [15541878]     Ответить | Цитировать Сообщить модератору
 Re: Как добавлять записи в сложну сущность в Entity Framework 4 ?  [new]
pation
Member

Откуда: Москва
Сообщений: 4498
megazoid007
Shocker.Pro, а можно ли как то вручную сформировать правильные ассоциируемый объект, а не каждый рас доставать его из базы:
фильм.Режисер = Кинотеатр.Режисеры.Single(s => s.РежисерID == 2); ?


var Тарантино = Кинотеатр.Режисеры.Single(s => s.РежисерID == 2);

УбитьБилла.Режисер = Тарантино;
УбитьБилла2.Режисер = Тарантино;
11 фев 14, 11:58    [15550252]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить