Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 简单Linq到Sql_C#_Entity Framework_Linq_Linq To Sql_Ef Fluent Api - Fatal编程技术网

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对象

人和站点之间没有直接关系,这就是为什么它没有在EF中映射,也没有在intellisense中显示。您应该尝试通过建筑物为一个人访问该站点。像
person.Building.SiteId
一样,您也可以通过
person.GradId
直接访问Grad。你能分享你的EF模型和映射吗?
var person = Person.Where(p => p.Building.SiteId == 99 && p.GradeId == 3).ToList();