MVC儿童的情况(hasMany)

时间:2013-11-21 11:20:26

标签: c# asp.net-mvc linq entity-framework

我想在对象的孩子身上做点什么。例如:

模范学校班有孩子,我希望学校班只有名叫汉克的孩子

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();

但是孩子不能直接访问,因为它是一个hasMany关系。

我必须使用像Any这样的东西吗?

这样我查询收到的数据(但我不需要所有孩子,这是开销)

Schoolclass = this.db.Schoolclass.Where(sc =>
    sc.ID == 4)
.FirstOrDefault();

Schoolclass.Children = Schoolclass.Children.Where(c => c.FirstName == "Hank").ToList();

2 个答案:

答案 0 :(得分:1)

“我想要所有名为Hank的孩子的学校班级”:
this.db.Schoolclass.FirstOrDefault(sc => sc.Children.All(c => c.FirstName == "Hank"));

答案 1 :(得分:0)

我想你想要这个:

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"));