Entity Framework 4 - постоянные дочерние объекты, использующие только внешние ключи - PullRequest
0 голосов
/ 05 мая 2011

В моей модели EF4 у меня есть отношения многие ко многим (во многих группах может быть много программ).

У меня есть набор идентификаторов программ и группа.Я хочу, чтобы в моей группе были программы, представленные идентификаторами программ, которые у меня есть.

Чего я не хочу делать, так это идти в базу данных, чтобы получить объекты программ.Я уже знаю их идентификаторы.

Как мне это сделать?

1 Ответ

1 голос
/ 05 мая 2011

Используйте трюк с фиктивными классами:

// you have a group
var group = GetGroupSomehow();
// if group is unknown to the context Attach it
context.Groups.Attach(group); // if it is a new group use AddObject
// now add programs
foreach(var program in programId.Select(id => new Program { Id = id }))
{
    // Attach dummy program first
    context.Programs.Attach(program);
    // Now make relation between group and program
    group.Programs.Add(program);
} 

context.SaveChanges();

Единственное требование состоит в том, что ни один Program из идентификаторов программы не загружен Если какая-либо программа загружена, она будет более сложной, потому что сначала вам нужно будет проверить ее в ObjectStateManager и использовать загруженный экземпляр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...