c# - 在 Entity Framework 6 中使用 SqlQuery<Dictionary<string, string>>

标签 c# sql .net entity-framework dictionary

我正在尝试在 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);
}

查询后我尝试了各种selectToDictionary,但都没有用。

最佳答案

如果对象具有默认构造函数和属性 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/

相关文章:

c# - 如何使用 MySQL 的 OdbcParameter?

c# - 如何为验证属性错误消息组合资源字符串?

.net - 如何链接 .NET Core 独立部署?

c# - 如何将 struct 从 C# managed 传递到 C++ unmanaged DLL 并获得 struct 结果?

c# - Ef Code First 外键失败

mysql - 如何在php mysql中按年龄创建员工分组

mysql - sql查询中的毕达哥拉斯

php - 条件MySQL查询的具体例子

c# - 高效地更新 .NET 字典中的绑定(bind)

c# - 为什么在C#中调用Grand parent虚函数