Итак, у меня есть модель Entity Framework 5, которая включает отношения «многие ко многим».Как написать этот запрос LINQ/EF?
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