c# - 如何使用 SqlQuery 将“全选”查询映射到 2 个表
问题描述
我正在尝试将两个连接表中的所有字段检索到任何类型的 ac# 对象。
所以我试图运行这段代码:
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>
但由于我无法准确了解它是如何映射的,所以我不明白它可以映射什么。
这里有一个有点类似的问题,但它的解决方案只解决了两列,而且它显然不支持返回空值。
解决方案
我经常使用这样的动态类型:
var lst = _context.Database.SqlQuery<dynamic>(query).ToList();
foreach (var item in lst)
{
var myVar = item.myfieldName;
}
最好为查询中的每个字段命名,而不是使用 select *。
推荐阅读
- clion - CLion:未找到 Clangd
- python - 如何打破python中自定义类方法的while条件?
- ruby-on-rails - RSpec:测试是否调用了方法 - 参数数量错误(给定 0,预期为 1)
- python - .mfcc.npy 变为 8000,设置为 501,39
- loops - 为什么我不能在这里插入“cout”语句?
- flutter - Flutter 小部件及其状态:先有鸡还是先有蛋的问题
- angular - 如何在尚未路由到的路由模块中动态创建组件
- android - React Native:Firebase 性能插件在 Android 中重复 com.reactnativecommunity.geolocation.BuildConfig
- kubernetes - 具有单个容器和多个图像的 Pod
- pandas - 根据列的子集从列表中删除重复的 Pandas 数据帧