我的EF4模型中有很多关系(许多组可以有很多程序)。
我有一套程序ID和一组。我希望我的小组拥有由我拥有的程序ID代表的程序。
我不想做的是去数据库获取程序实体。我已经知道他们的身份了。
我该怎么做?
答案 0 :(得分:1)
使用虚拟类的技巧:
// 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();
唯一的要求是programIds中没有Program
已经加载。如果加载任何程序,它将更复杂,因为您首先必须在ObjectStateManager
中检查它并使用加载的实例。