2
このアップデートを行うための方法はありますか?Entity Framework 4.0を使用しているときに、異なるテーブルの関連エントリを更新するにはどうすればよいですか?
void Update(Table1 table1Entry, Table2[] table2entries)
{
entities.Table1.Attach(table1Entry);
var table2EntriesIds = table2entries.Select(a => a.Id);
var updates = entities.Table2
.Where(a => table2EntriesIds.Contains(a.Id));
foreach(var update in updates)
{
entities.Table2.Attach(update);
}
var deletions = entities.Table2
.Where(a => a.Table1Id == table1Entry.Id);
.Where(a => !table2EntriesIds.Contains(a.Id));
foreach(var deletion in deletions)
{
entities.DeleteObject(deletion);
}
var insertions = table2entries.Except(matches);
foreach(var insertion in insertions)
{
entities.AddToTable2(insertion);
}
entities.SaveChanges();
}
ここで、Table2にはTable1_Id外部キーがあります。
このコードをテストしましたか? –
@LadislavMrnkaいいえ、それは1つまたは2つのエラーが発生することがありますが、正しい場合にはまだ非常に長くなります –