提问人:Răzvan Puștea 提问时间:10/14/2023 最后编辑:marc_sRăzvan Puștea 更新时间:10/14/2023 访问量:49
将查询结果映射到“未映射”属性
Map result from query to Not Mapped property
问:
我使用字符串构建了我的查询。除其他事项外,以下是我选择的内容:
SELECT
...,
[CST].CompanyName AS 'CustomerName',
CONCAT([CON].FirstName, ' ', [CON].LastName) AS 'BuyerName'
...
我的模型有 2 个属性:和 。[NotMapped]
CustomerName
BuyerName
我正在使用 EF Core 3.1。如何告诉 EF 从 和 列返回的内容应映射到具有相同名称的属性?CustomerName
BuyerName
[NotMapped]
我试过这个:
var estimates = _context.Estimates
.FromSqlRaw(sqlString)
.AsNoTracking()
.Select(s => new Estimate
{
// lazy load
BuyerName = s.Customer.CompanyName,
CustomerName = s.CustomerContact.FirstName + " " +
s.CustomerContact.LastName
})
.ToList();
它有效,但它执行了 2 个不必要的连接(我已经在我的变量中执行了)。sqlString
答: 暂无答案
评论
FromSqlRaw
只返回一个平面结果集。EF 在此平面表中没有(也不可能有)任何层次结构的概念。因此,如果您使用它,则必须加入才能访问记录。s.Customer.CompanyName
Customer