如何解决如何使用 SqlQuery 映射带有 2 个表的“全选”查询
我正在尝试将两个连接表中的所有字段检索到任何类型的 c# 对象。
所以我正在尝试运行此代码:
var query = @$"EXEC('select *
from persons p join students s on p.id=s.id
where p.id = 21')";
var result = _context.Database.sqlQuery<?>(query).ToList();
但我不明白应该用什么来代替问号。
我已经尝试过 List<object>
和 Dictionary<string,string>
,但由于我无法准确了解它是如何映射的,我不明白它可以映射到什么。
有一个有点类似的问题 here 但它的解决方案只解决了两列,而且它显然不支持返回空值。
解决方法
您可以尝试在 SQL 级别创建存储过程或函数。 然后,只需选择然后生成的表/结果。 所以,你已经知道它是什么类了。
,我经常像这样使用动态类型:
var lst = _context.Database.SqlQuery<dynamic>(query).ToList();
foreach (var item in lst)
{
var myVar = item.myfieldName;
}
最好为查询中的每个字段命名,而不是使用 select *。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。