如何将实体框架中的内联联接查询结果转换为实体

本文关键字:实体 查询 结果 转换 框架 | 更新日期: 2023-09-27 18:31:16

>我有两个名为"客户"和"地址"的实体(一对一映射,每个客户都有一个地址),并且我正在使用实体框架的代码优先方法。

我已经编写了内联sql查询来获取一些详细信息。

 var customers= context.Database.SqlQuery<Customer>( 
                   "SELECT * FROM Customer c INNER JOIN Address a ON a.CustomerId = c.Id").ToList();

此语句仅提取客户详细信息,对于要返回的所有客户对象,地址属性为 NULL。

如何获取作为客户实体的内联联接查询的结果(保持相同的结构)。

如何将实体框架中的内联联接查询结果转换为实体

一种选择是使用 linq 重写 SqlQuery 并使用 Include 属性:

var customers = (from c in context.Customer
  select c).Include(c => c.Address).ToList();

有关详细信息,请参阅从 MSDN 加载相关实体。

不是在数据库上运行查询,而是在客户实体上运行查询解决了我的问题。

 var customers= context.Customer.SqlQuery<Customer>( 
               "SELECT * FROM Customer c INNER JOIN Address a ON a.CustomerId = c.Id").ToList();