0
我在EF4模型中有多對多的關係(許多組可以有很多程序)。我有一套程序ID和一組。我希望我的小組擁有由我擁有的程序ID代表的程序。實體框架4 - 僅使用外鍵支持子對象
我不想做的是去數據庫獲取程序實體。我已經知道他們的Id了。
我該怎麼做?
我在EF4模型中有多對多的關係(許多組可以有很多程序)。我有一套程序ID和一組。我希望我的小組擁有由我擁有的程序ID代表的程序。實體框架4 - 僅使用外鍵支持子對象
我不想做的是去數據庫獲取程序實體。我已經知道他們的Id了。
我該怎麼做?
使用技巧與虛擬類:
// 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
從programIds已經加載。如果有任何程序被加載,它將變得更加複雜,因爲您首先必須在ObjectStateManager
中檢查它並使用加載的實例。