我只能使用SP从数据库加载我的实体。我可以使用导入功能成功加载客户:
Customer cust = context.GetCustomerById(customerId);
然后我需要使用另一个SP加载cust.Orders集合:
IEnumerable<Order> cust_orders = context.GetOrdersByCustomerId(customerId);
我获得了相关订单的列表,这些订单的属性Customer正确设置为已加载的Customer实例。当我尝试做类似的事情时会出现问题:
foreach(Order ord in cust.Orders)
{
Console.WriteLine(ord.Number); // "SELECT permission required ..." exception is thrown here
}
有没有办法加载订单属性而不触发选择?
答案 0 :(得分:0)
您必须通过适当的SP调用禁用LazyLoading并加载订单,如下所示:
DBContext.DataBase.SqlQuery<Order>("exec spGetOrders {0}", invoiceID).ToList();