2014-10-08 125 views
1

加载某些行我有类实体框架 - 在导航性能

Address 
PeopleAddress //join table with a column called current 
People   // my main table, with a IList<PeopleAddress> 

modelBuilder.Entity<People>() 
      .HasMany<PeopleAddress>(m => m.CurrentAddresses) 
      .WithRequired() 
      .HasForeignKey(m => m.PeopleId); 

我(总是)想要只载入PeopleAddress在人们那里PeopleAddress.Current == 1 行与PeopleAddress.Current = = 0对于应用程序不是必需的。 我该如何做到这一点?这可能吗?谢谢。

PS:我不能没有使用Include的上下文是在很多地方被实例化,我需要做的是在OnModelCreating(DbModelBuilder modelBuilder)

回答

0

对于这个工作延迟加载应禁用给你完全控制哪些数据是加载。

在PeopleAddress表上执行查询,并确保通过PeopleAddress中的导航属性加载人员数据。

public virtual People People { get; set; } 

PeopleAddress.Include(pa => pa.People).Where(pa => pa.Current == 1) 
0

试试吧

context.People.Include("PeopleAddress") 
       .Select(t=> new { t, 
           PeopleAddress= t.PeopleAddress 
               .Where(p=>p.Current==1)});