C# 实体框架(代码优先)多对多LINQ查询形成
首先使用实体框架代码假设我有类:C# 实体框架(代码优先)多对多LINQ查询形成,c#,linq,entity-framework,C#,Linq,Entity Framework,首先使用实体框架代码假设我有类: class Person { public Person() { Houses = new List<House>(); } public Guid PersonId { get; set; } public string Name { get; set; } public virtual List<House> Houses { get; set; } } public
class Person
{
public Person()
{
Houses = new List<House>();
}
public Guid PersonId { get; set; }
public string Name { get; set; }
public virtual List<House> Houses { get; set; }
}
public House
{
public Guid HouseId { get; set; }
public string Address { get; set; }
}
班级人员
{
公众人士()
{
房屋=新列表();
}
公共Guid PersonId{get;set;}
公共字符串名称{get;set;}
公共虚拟列表包含{get;set;}
}
酒店
{
公共Guid房屋ID{get;set;}
公共字符串地址{get;set;}
}
然后,我创建了一个只公开一个实体的上下文。然后我用多对多关系映射它们
public class PersonContext : DbContext
{
public DbSet<Person> People { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>()
.HasMany(p => p.Houses)
.WithMany()
.Map(m =>
{
m.ToTable("PeopleHouses");
m.MapLeftKey("PersonId");
m.MapRightKey("HouseId");
}
}
}
public类PersonContext:DbContext
{
公共数据库集人物{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasMany(p=>p.house)
.有很多
.Map(m=>
{
m、 ToTable(“居民住宅”);
m、 MapLeftKey(“人格”);
m、 MapRightKey(“房屋ID”);
}
}
}
当运行实体框架创建联接表时
我的问题是如何创建LINQ查询来检索属于一个人的房屋?(使用PersonId)我看不出您的问题…它有一个导航属性
var houses = People.First(n => /* select your person */).Houses;
我看不出你的问题…它有一个导航属性
var houses = People.First(n => /* select your person */).Houses;
我看不出你的问题…它有一个导航属性
var houses = People.First(n => /* select your person */).Houses;
我看不出你的问题…它有一个导航属性
var houses = People.First(n => /* select your person */).Houses;