私はEF 4.3.1で作業しており、挿入側ではすべてがうまくいっています。しかし今、挿入したオブジェクトを引き出して MVC3 プロジェクトのビューに表示しようとしていて、問題が発生しています。
私の DAL にはChurch
、データベースからオブジェクトを取得する次のメソッドがあります。
public virtual TEntity GetById(object id)
{
return _db.Find(id);
}
オブジェクト自体は次のようになります。
public class Church
{
//Basic Properties
public int Id { get; set; }
public string Name { get; set; }
public string Website { get; set; }
... (some properties)
//Church Contacts and Services
public List<Contact> Contacts { get; set; }
public List<Service> Services { get; set; }
....
}
最後の 2 つのプロパティ、Contacts と Services に注意してください。それぞれがデータベース内の 1:Many テーブルです。ただし、これは返されFind()
ないようです。2 つのプロパティを null に設定するだけです。
データベース内の実際のエントリは、私が期待するとおりに見えます。各教会には、いくつかの連絡先と関連するサービスがあります。それでも、モデルにマップされることはありません...
何かご意見は?
編集ええ、明示的に指示するまで、これらのプロパティをロードしていないようです。これをChurchRepositoryに追加してクエリを変更しました(GenericRepositoryから継承)
public override Church GetById(object id)
{
return _db.Include("Contacts").Include("Services").FirstOrDefault(c => c.Id == (int)id);
}