EF4モデルファーストアプローチを使用してデータベースを作成しました。私のモデルでは、2つのエンティティ間にN対Mの関係があります。
データベースに、タイプの3つのDiagnosis
レコードとタイプの3つのレコード、TreatmentSchema
およびそれらの間の関連付けを含む、いくつかのダミーデータを入力しました。これを行うために使用したコードスニペットは次のとおりです。
using(var container = new SmartTherapyContainer()) {
var diagnosisA = new Diagnosis() { Id = Guid.NewGuid(), Name = "Diagnosis A" };
var diagnosisB = new Diagnosis() { Id = Guid.NewGuid(), Name = "Diagnosis B" };
var diagnosisC = new Diagnosis() { Id = Guid.NewGuid(), Name = "Diagnosis C" };
container.Diagnoses.AddObject(diagnosisA);
container.Diagnoses.AddObject(diagnosisB);
container.Diagnoses.AddObject(diagnosisC);
var schemaA = new TreatmentSchema() { Id = Guid.NewGuid(), Name = "Schema 1" };
var schemaB = new TreatmentSchema() { Id = Guid.NewGuid(), Name = "Schema 1" };
var schemaC = new TreatmentSchema() { Id = Guid.NewGuid(), Name = "Schema 1" };
container.Schemas.AddObject(diagnosisA);
container.Schemas.AddObject(diagnosisB);
container.Schemas.AddObject(diagnosisC);
diagnosisB.TreatmentSchemas.Add(schemaA);
diagnosisC.TreatmentSchemas.Add(schemaA);
diagnosisC.TreatmentSchemas.Add(schemaB);
diagnosisC.TreatmentSchemas.Add(schemaC);
container.SaveChanges();
}
EF4のマッピングによって作成された参照テーブルに関連付けが実際に保存されていることを確認しました。Diagnosis
ただし、後でコレクションを介してを取得するcontainer.Diagnoses
と、その.TreatmentSchemas
コレクションは常に空になります。
EF4で生成されたコードにデバッグしてみましたが、コレクションを怠惰に作成するだけですが、関連するオブジェクトでいっぱいになりません。AyendeのEntityFrameworkProfilerは、プロパティにアクセスしたときにクエリがまったく生成されていないことを示しています。これにより、ここで何か間違ったことをしていると思います。
関連するリストを取得するにはどうすればよいTreatmentSchemas
ですか?