0
如果使用下面的表結構簡單的LINQ到SQL
Key Site Building Person Grade
Primary key SiteId BuildingId PersonId GradeId
Foreign key SiteId BuildingId
GradeId
知道了SITEID,我期待獲得具有一組級Person對象的列表。
我使用UOF和存儲庫模式和用於拉出數據如下代碼:
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);
但我無法在人員或等級對象的網站上看到網站。
我曾嘗試包括表,但再次,intellisence不允許我越挖越深,則下一個對象,所以
var site = unitOfWork.Repository<Site>()
.Query(si => si.SiteId == siteId)
.Include(si => si.Building)
.Include(si => si.Building.Person) ..... not visible
.Select()
.FirstOrDefault();
我需要做什麼改變,要麼讓我:
- 拉回到初始查詢
- 橫向使用intellisence
- 使用現有代碼的對象額外的表對象拉一個人對象
有這就是爲什麼它沒有在EF映射Person和網站之間沒有直接的關係,它不是在智能感知所示。您應該嘗試通過建築物訪問某個人的網站。像'person.Building.SiteId'一樣,你也可以通過'person.GradId'直接訪問Grad。你能分享你的EF模型和映射嗎? –