1

したがって、多対多の関係を含む Entity Framework 5 モデルがあります。

CategoryValues --< CourseCategoryValues >-- Courses

データベース内のすべてを選択する LINQ クエリがCourseあります。Courses特定の に属するもののみを選択するように変更したいと思いますCategoryValue。これまでの私の試みは失敗しましたか?

誰でもこれを理解するのを手伝ってもらえますか?

これは私が試したことです:

Using database As SiteDataContext = New SiteDataContext
    database.Configuration.ProxyCreationEnabled = False
    database.Courses.Include("Classes")
    database.Courses.Include("CourseCategoryValues")
    query = (From c In database.Courses Select c Order By c.Name).Where(
                                                                        Function(c) 0 < c.Classes.Where(Function([class]) [class].Status.ToLower = "open").Count
                                                            ).Include(Function(r) r.Classes).Include(Function(r) r.CourseCategoryValues)
    ' Here is where I am trying to narrow down the query results
    If (pid.HasValue) AndAlso (0 <> pid.Value) Then
        query.Where(Function(c) c.CourseCategoryValues.Any(Function(v) v.CategoryValue.CategoryValueID = pid))
    End If

    model.PageData = query.ToList
End Using
4

1 に答える 1

1

クエリ変数へのフィルターの割り当てが欠けているだけだと思います。Where新しいクエリ可能を返します。適用するクエリ可能を変更しませんWhere。したがって、次のものが必要です。

query = query.Where(...)

Where表現自体は私には正しいように見えます。

于 2013-04-08T21:39:24.483 に答える