Ленивая Загрузка Платформа Объекта EntityCollection с критериями

В Платформе Объекта (конкретно EF 3.5, но если это существует в EF 4, она приводит мне причину обновить) действительно ли это возможно к ленивой загрузке только часть набора? Я могу приближаться к этой несправедливости также, таким образом, я открыт для предложений. Мои таблицы/объекты выглядят подобными этому:

Person            PersonMeal           Meal
------    1---*   ----------   *---1   -----
ID                ID                   ID
...               PersonID             ...
                  MealID
                  Value
                  ...

У меня есть список Person объекты, которые были получены через Платформу Объекта с помощью хранимой процедуры. У меня есть представление, которое только показывает тот Meal за один раз, таким образом, я только хочу информацию, связанную с той едой. В настоящее время у меня есть код, который похож на это:

Function GetPersons() As List(Of Person)
    Dim personList = context.StoredProcedureCall(param1, param2, param3).ToList()
    personList.ForEach(Function(x) LazyLoadProperties(x))
    Return personList
End Function

' Work around function because VB lambdas don't take Sub's
Function LazyLoadProperties(ByVal person As Person) As Object
    If (Not person.PersonMeal.IsLoaded) Then
        person.PersonMeal.Load()
    End If
    Return Nothing
End Function

Проблема, это загружает весь набор. Предоставленный это - небольшая коллекция так худший вариант развития событий, я могу загрузить все это и затем удалить все кроме того, в котором я нуждаюсь, но это далеко от идеала. Плюс я не уверен, было ли это возможно, не инициировав ни одного из событий изменения набора, так как они не должны были быть там во-первых.

6
задан Agent_9191 15 October 2010 в 18:37
поделиться