首页 > 解决方案 > 如何使用 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>但由于我无法准确了解它是如何映射的,所以我不明白它可以映射什么。

这里有一个有点类似的问题但它的解决方案只解决了两列,而且它显然不支持返回空值。

标签: c#entity-framework-6entity

解决方案


我经常使用这样的动态类型:

  var lst =   _context.Database.SqlQuery<dynamic>(query).ToList();  
  foreach (var item in lst)
  {
     var myVar = item.myfieldName;
  }

最好为查询中的每个字段命名,而不是使用 select *。


推荐阅读