В Платформе Объекта (конкретно 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
Проблема, это загружает весь набор. Предоставленный это - небольшая коллекция так худший вариант развития событий, я могу загрузить все это и затем удалить все кроме того, в котором я нуждаюсь, но это далеко от идеала. Плюс я не уверен, было ли это возможно, не инициировав ни одного из событий изменения набора, так как они не должны были быть там во-первых.