[英]C# Entity Framework populate partial property
我有一個名為Person的實體,它有一組地址。
我建立:
public partial class Person
{
public int AddressCount{get{return Addresses.Count;}}
}
這會返回錯誤:
ObjectContext實例已被釋放,不能再用於需要連接的操作。
我正在返回一個人的集合,我怎么能這樣做而不這樣做:
public int AddressCount
{
get
{
using (var c = new Entities())
{
return c.People.Where(s => s.PersonId == PersonId).Single().Addresses.Count;
}
}
}
我發現這可以在不加載集合中的所有實體的情況下急於加載“count”屬性:
using (var context = new Entities())
{
var people = (from p in c.People
select new
{
Person = p,
AddressCount = p.Addresses.Count
}).ToList();
foreach (var item in people)
{
item.Person.AddressCount = item.AddressCount;
}
}
當然,缺點是AddressCount需要設置。 如果你的上下文與實體類在同一個程序集中,我想你可以給它一個內部setter。
您可能不需要Include("Addresses")
- 這值得測試。 編輯刪除了它,因為它不是必要的(實際上可能使查詢做的工作比它更多)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.