Могут ли существующие сущности быть связаны с другими вновь добавленными сущностями в ObjectContext, добавляя их в свое свойство навигации коллекции? - PullRequest
0 голосов
/ 03 апреля 2011

Будет ли внешний ключ в первом наборе сущностей обновлен с ИДЕНТИЧНОСТЬЮ вновь добавленной сущности? Возможно ли это?

У меня есть таблица пользователей и таблица агентств.

У пользователей есть внешний ключ AgencyId, который может быть нулевым.

Таким образом, в моем Entity Framework ObjectContext у меня будет сущность Агентство, в которой у Пользователей будет свойство навигации типа коллекции пользователей.

Я добавляю новый объект к объекту Агентства, и тогда я знаю, что могу добавить объекты Users к этому объекту Агентства, и они будут сохранены в базе данных.

Но я хочу вот что:

Я хочу добавить уже существующих Пользователей к этому объекту Агентства, чтобы независимо от того, какая идентификация была создана для этого нового Агентства в базе данных, она добавлялась во внешний ключ "AgencyId" таблицы Users для тех пользователей, которые добавляются в это Агентство.

Можно ли это сделать с помощью структуры сущностей?

1 Ответ

1 голос
/ 03 апреля 2011

Конечно, это можно сделать.Просто сделайте:

var agency = new Agency { ... };

foreach (var user in context.Users.Where(u => ...))
{
    agency.Users.Add(user);
}

context.Agencies.Add(agency);
context.SaveChanges();

Все внешние ключи в пользовательских объектах будут установлены на новый идентификатор вставленного агентства.

...