简单的 Linq to Sql
Simple Linq to Sql
如果有以下table结构
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();
我想做的是:
List<Person> person = Person.Where(p => p.Site.SiteId == 99
&& p.Site.Building.person.Grade == 3);
但我无法在智能中看到人员或等级对象的站点。
我已经尝试包含 tables,但同样地,智能不允许我比下一个对象更深入地挖掘,所以
var site = unitOfWork.Repository<Site>()
.Query(si => si.SiteId == siteId)
.Include(si => si.Building)
.Include(si => si.Building.Person) ..... not visible
.Select()
.FirstOrDefault();
我需要更改什么才能使我能够:
- 拉回初始查询中的额外 table 个对象
- 使用智能遍历对象
- 使用现有代码拉取人物对象
var person = Person.Where(p => p.Building.SiteId == 99 && p.GradeId == 3).ToList();
如果有以下table结构
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();
我想做的是:
List<Person> person = Person.Where(p => p.Site.SiteId == 99
&& p.Site.Building.person.Grade == 3);
但我无法在智能中看到人员或等级对象的站点。
我已经尝试包含 tables,但同样地,智能不允许我比下一个对象更深入地挖掘,所以
var site = unitOfWork.Repository<Site>()
.Query(si => si.SiteId == siteId)
.Include(si => si.Building)
.Include(si => si.Building.Person) ..... not visible
.Select()
.FirstOrDefault();
我需要更改什么才能使我能够:
- 拉回初始查询中的额外 table 个对象
- 使用智能遍历对象
- 使用现有代码拉取人物对象
var person = Person.Where(p => p.Building.SiteId == 99 && p.GradeId == 3).ToList();