POCO を使用する Entity Framework でいくつかの問題が発生しています。私が見ている動作が予想されるものなのか、それともなぜそれが起こっているのかを深く掘り下げる必要があるのかどうか、誰かが大まかなレベルで教えてくれることを願っています.
クラスCustomer
と別のCustomerType
があるのでCustomer
、Type
(タイプCustomerType
を示すタイプの)CustomerType
プロパティCustomers
があり、s のコレクションであるプロパティがありますCustomer
(そのタイプを持つすべてCustomer
の s) したがって、これらは基本的に関連付けの両端のナビゲーション プロパティであり、結果として次のようなPOCOコードで:
public partial class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public int TypeId { get; set; }
public CustomerType Type { get; set; }
}
public partial class CustomerType
{
public CustomerType()
{
this.Customers = new HashSet<CustomerType>();
}
public int Id { get; set; }
public string TypeName { get; set; }
public virtual ICollection<Customer> Customers { get; set; }
}
DbContext.Configuration.ProxyCreationEnabled=false
Proxy の作成と LazyLoading (つまりとの両方) をオフにしましDbContext.Configuration.LazyLoadingEnabled=false
た。
Customer
セットからインスタンスを取得すると、予想どおり、Type
それらのプロパティはデフォルトで null です。
Customer
しかし、セットからインスタンスを取得すると.Include("Type")
、プロパティがロードされるだけでなくType
、子もロードされます。つまり、Customer
これらのそれぞれの のコレクションです。
これは期待されていますか?