C# 简单Linq到Sql
如果有以下表格结构C# 简单Linq到Sql,c#,entity-framework,linq,linq-to-sql,ef-fluent-api,C#,Entity Framework,Linq,Linq To Sql,Ef Fluent Api,如果有以下表格结构 Key Site Building Person Grade Primary key SiteId BuildingId PersonId GradeId Foreign key SiteId BuildingId
Key Site Building Person Grade
Primary key SiteId BuildingId PersonId GradeId
Foreign key SiteId BuildingId
GradeId
了解SiteId后,我希望获得一个具有设置等级的Person对象列表
我使用uof和repository模式,用于提取数据的代码如下:
var site = unitOfWork.Repository<Site>()
.Query(si => si.SiteId == siteId)
.Select()
.FirstOrDefault();
var site=unitOfWork.Repository()
.Query(si=>si.SiteId==SiteId)
.选择()
.FirstOrDefault();
我想做的是:
List<Person> person = Person.Where(p => p.Site.SiteId == 99
&& p.Site.Building.person.Grade == 3);
List person=person.Where(p=>p.Site.SiteId==99
&&p.Site.Building.person.Grade==3);
但我无法从intellisence中的person或grade对象查看站点
我曾尝试将表格包括在内,但同样,intellisence不允许我深入挖掘下一个对象,因此
var site = unitOfWork.Repository<Site>()
.Query(si => si.SiteId == siteId)
.Include(si => si.Building)
.Include(si => si.Building.Person) ..... not visible
.Select()
.FirstOrDefault();
var site=unitOfWork.Repository()
.Query(si=>si.SiteId==SiteId)
.包括(si=>si.建筑)
.包括(si=>si.Building.Person)。。。。。看不见
.选择()
.FirstOrDefault();
我需要更改什么才能使我能够:
- 回拉初始查询中的额外表对象
- 使用intellisence遍历对象
- 使用现有代码拉取person对象
person.Building.SiteId
一样,您也可以通过person.GradId
直接访问Grad。你能分享你的EF模型和映射吗?
var person = Person.Where(p => p.Building.SiteId == 99 && p.GradeId == 3).ToList();