Заполнение дочернего свойства с помощью Entity Framework SqlQuery

Учитывая следующие первые объекты кода POCO

public class Customer
{
    public int CustomerId { get; set; }
    public string CustomerTitle { get; set; }
    public string CustomerFirstName { get; set; }
    public string CustomerLastName { get; set; }

    public ICollection<Order> Orders { get; set; }
}

public class Order
{
   public int OrderId { get; set; }
   ...
   public int CustomerId { get; set; }

   public Customer Customer { get; set; }
}

Используя linq, вы можете заполнить заказы, используя свойство Include, как в

var cust = (from cust in context.Customer
            where cust.CustomerId == 1
            select cust)
            .Include(ord => ord.Orders)
            .FirstOrDefault();

. Я пытаюсь получить тот же результат, используя параметризованный sql, используя

        Customer co =  context.Customer.SqlQuery(
                    @"select [Customer].[CustomerId], 
                             ...
                             [Order].[OrderId] AS [OrderId], 
                             ...
                            from Customer join Order on Customer.CustomerId = Order.CustomerId where Customer.CustomerId = @custid", sqlParm)
                .FirstOrDefault();

Как мне получить заказы в co.Orders, которые будут заполнены с помощью приведенной выше команды, похоже, что я не могу использовать оператор Include с SqlQuery. Это очень упрощенный пример только для иллюстративных целей, фактические запросы будут более сложными.

11
задан Dirk 19 October 2011 в 13:30
поделиться