gpt4 book ai didi

c# - 使用 Entity Framework SqlQuery 填充子属性

转载 作者:可可西里 更新时间:2023-11-01 08:41:36 26 4
gpt4 key购买 nike

给定以下 POCO Code First 实体

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 一起使用。这是一个非常简化的示例,仅供说明之用,实际查询会涉及更多。

最佳答案

这根本不可能。直接 SQL 执行不提供导航属性的填充,您真的不能使用 Include。您必须执行两个单独的 SQL 查询才能获取 Cutomer 和她的 Orders

关于c# - 使用 Entity Framework SqlQuery 填充子属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com