Хорошо хранимые процедуры не сочетаются. Таким образом, невозможно вызвать ваш SPROC и заставить EF автоматически заполнить отношения в одном запросе, используя Include () или что-то в этом роде.
Скажем, у вас есть товары и категории
и у вас есть источник, чтобы получить продукты:
т.е.
var products = context.GetProducts(someproductfilter);
полученным продуктам не будут загружены их категории.
Однако, если у вас есть вторая хранимая процедура, которая получает Категории для указанных продуктов:
т.е.
var categories = context.GetCategoriesForProducts(someproductfilter);
функция в EF, называемая фиксацией отношений, которая связывает связанные сущности после того, как вторая сущность входит в контекст, гарантирует, что после выполнения обоих вызовов каждый продукт в продуктах будет иметь ненулевую категорию.
Это не идеально, потому что вы делаете более одного запроса, но он будет работать.
Альтернативой является использование EFExtensions . Парень, который написал это, создал возможность писать sprocs, которые загружают больше данных за один раз.
Надеюсь, это поможет
Приветствие
Alex