我有课程
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.Current == 1的人中加载PeopleAddress。 应用程序不需要具有PeopleAddress.Current == 0的行。 我该如何实现这一目标?这可能吗?谢谢。
PS:我不能使用Include
,因为在很多地方实例化了上下文,我需要在OnModelCreating(DbModelBuilder modelBuilder)
答案 0 :(得分:0)
为此,应禁用延迟加载,以便完全控制加载哪些数据。
在PeopleAddress表上执行查询,并确保通过PeopleAddress中的导航属性加载People数据。
public virtual People People { get; set; }
PeopleAddress.Include(pa => pa.People).Where(pa => pa.Current == 1)
答案 1 :(得分:0)
试试吧
context.People.Include("PeopleAddress")
.Select(t=> new { t,
PeopleAddress= t.PeopleAddress
.Where(p=>p.Current==1)});