[英]MVC Where condition on children (hasMany)
我想在對象的子對象上做一個位置。 因此,例如:
模范學校班級有孩子,我希望只有名叫漢克的孩子的班級
Model Schoolclass
int ID
string Classname
virtual ICollection<Children> Children
Model Child
int ID
int ClassID
string FirstName
string LastName
this.db.Schoolclass.Where(sc =>
sc.ID == 4 &&
sc.Children.FirstName == "Hank"
).FirstOrDefault();
但是無法直接訪問child,因為這是hashay關系。
我是否必須使用類似Any的東西?
這樣,我查詢接收到的數據(但我不需要所有的孩子,這是開銷)
Schoolclass = this.db.Schoolclass.Where(sc =>
sc.ID == 4)
.FirstOrDefault();
Schoolclass.Children = Schoolclass.Children.Where(c => c.FirstName == "Hank").ToList();
“我希望所有叫漢克的孩子都上這堂課”:
this.db.Schoolclass.FirstOrDefault(sc => sc.Children.All(c => c.FirstName == "Hank"));
我想你想要這個:
this.db.Schoolclass.Where(sc =>
sc.ID == 4 &&
sc.Children.Any(x=>x.FirstName == "Hank")
).FirstOrDefault();
或更簡單:
this.db.Schoolclass.FirstOrDefault(sc => sc.ID == 4 &&
sc.Children.Any(x=>x.FirstName == "Hank"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.