Với Entities POCO Mã đầu tiên sauPopulating sở hữu con với Entity Framework sqlquery
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; }
}
Sử dụng LINQ bạn có thể nhận các đơn đặt hàng điền vào bằng cách sử dụng Bao gồm tài sản như trong
var cust = (from cust in context.Customer
where cust.CustomerId == 1
select cust)
.Include(ord => ord.Orders)
.FirstOrDefault();
tôi đang cố gắng để có được kết quả tương tự bằng cách sử dụng sql paramaterised, sử dụng
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();
Làm cách nào để tôi t các đơn đặt hàng trong co.Orders được dân cư với các lệnh trên, nó có vẻ như tôi không thể sử dụng tuyên bố bao gồm với SqlQuery. Đây là một ví dụ rất đơn giản chỉ nhằm mục đích minh họa, các truy vấn thực tế sẽ được tham gia nhiều hơn.
FirstOrDefault() làm cho truy vấn được thực thi, vì vậy điều này thực sự bằng thực hiện hai truy vấn –