我正在尝试在 EF 6 中执行 SQL 查询。select
查询返回两个字符串列,例如选择“a”、“b”
,并且可以有任意数量的行。
我想将结果映射到字典,但无法避免出现以下错误。
Error 1 Cannot implicitly convert type 'System.Data.Entity.Infrastructure.DbRawSqlQuery>' to 'System.Collections.Generic.Dictionary'
这是代码:
using (var db = new EFDbContext())
{
Dictionary<string, string> perms = new Dictionary<string, string>();
perms = db.Database.SqlQuery<Dictionary<string, string>>(TheQuery);
}
查询后我尝试了各种select
和ToDictionary
,但都没有用。
最佳答案
如果对象具有默认构造函数和属性 setter ,您可以使用 SqlQuery
直接填充该对象。结果可用于创建字典。例如:
public class QueryResult
{
public string A { get; set; }
public string B { get; set; }
}
// the colulmn/alias names need to match property names
string query = "SELECT column1 AS [A], column2 AS [B] FROM ..."
using (var db = new EFDbContext())
{
var perms = db.Database.SqlQuery<QueryResult>(query)
.ToDictionary(r => r.A, r => r.B);
}
关于c# - 在 Entity Framework 6 中使用 SqlQuery<Dictionary<string, string>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30771552/