EF4: загрузка свойств навигации с помощью SP - PullRequest
1 голос
/ 26 марта 2012

Я могу использовать только SP для загрузки своих сущностей из базы данных.Я могу успешно загрузить клиента с помощью функции импорта:

Customer cust = context.GetCustomerById(customerId);

Затем мне нужно загрузить коллекцию cust.Orders с использованием другого SP:

IEnumerable<Order> cust_orders = context.GetOrdersByCustomerId(customerId);

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

foreach(Order ord in cust.Orders)
{
  Console.WriteLine(ord.Number); // "SELECT permission required ..." exception is thrown here
}

Есть ли способ загрузить свойство Orders без вызова Select?

1 Ответ

0 голосов
/ 26 марта 2012

Вы должны отключить LazyLoading и загружать заказы через соответствующий вызов SP, например:

DBContext.DataBase.SqlQuery<Order>("exec spGetOrders {0}", invoiceID).ToList();
...