ほとんどの場合にうまく機能する WCF Data Services を使用していますが、関連するエンティティ コレクションを持つエンティティを更新する方法がわかりません。たとえば、以下のコードでは、部門に関連するバッチ オブジェクトがあります。私のデータベースでは、これは 3 つのテーブル (Batches、Departments、Batches_Departments) として表されます。EF はこれを部門のナビゲーション プロパティを持つ Batch オブジェクトとして公開します。
以下に示すコードでは、Batch オブジェクトが作成され、Departments コレクションが設定されますが、SaveChanges を呼び出すと、Batch オブジェクトだけがデータベースに作成されます。部門は無視されます。SaveChanges 行にブレークポイントを設定すると、Departments コレクションが読み込まれたことを確認できます。
private void Save()
{
var batch = new DataService.Batch() { Description = txtDescription.Text, Filename = txtFilename.Text };
foreach (var department in lstDepartments.CheckedItems)
{
var dept = _ctx.Departments
.Select(d => d)
.Where(d => d.DepartmentID == ((DataService.Department)department).DepartmentID)
.First();
batch.Departments.Add(dept);
}
_ctx.AddToBatches(batch);
_ctx.SaveChanges();
}
明らかな何かが欠けていると確信していますが、それを見つけることができないようです。どんな助けでも大歓迎です。