c# - 尝试获取在 Linq2Entities 查询中连接的字符串

标签 c# linq entity-framework linq-to-entities

我正在尝试创建一个 Dictionary<string, string>来自实体中两个字符串字段的组合结果。

我正在使用这本词典来填充下拉列表。对于这种特殊情况,键和值都是相同的。

这是我目前的查询:

var qry = (
    from x in db.Treatment_Type
    select new { 
        TreatmentCode = x.Project_Classification + ":" + x.Improvement_Type
    })
    .AsEnumerable()
    .ToDictionary<string, string>(x => x);

我正在尝试连接 Project_ClassificationImprovement_Type值合并为一个值。它以匿名类型而不是字符串的形式返回,因此我收到有关字典如何无法从匿名类型推断类型的错误,并建议我明确说明类型。当我这样做时,我收到无法将匿名类型转换为字符串的错误。

我怎样才能做到这一点?

最佳答案

你为什么不干脆去掉它的匿名类型呢?那对你没有帮助:

var qry = (from x in db.Treatment_Type
           select x.Project_Classification + ":" + x.Improvement_Type)
          .AsEnumerable()
          .ToDictionary<string, string>(x => x);

仅当您真正从中受益时才使用匿名类型:)

这同样适用于查询表达式 - 在本例中我将使用:

var qry = db.Treatment_Type
            .Select(x => x.Project_Classification + ":" + x.Improvement_Type)
            .AsEnumerable()
            .ToDictionary<string, string>(x => x);

关于c# - 尝试获取在 Linq2Entities 查询中连接的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534543/

相关文章:

c# - Visual Studio 未将设计器连接到代码隐藏

c# - 在文本框中显示字节数组而不转换为可读字符串

c# - 使用LINQ的 "into"关键字进行分组连接不返回集合

c# - 选择最大值,但仅限于使用 LINQ to Entities 的数值

entity-framework - EF 4.1 Code First ModelBuilder HasForeignKey 用于一对一关系

entity-framework - Entity Framework 代码优先与链接表的一对多关系映射

c# - C#Powershell-Exchange管理{“Value cannot be null.\r\nParameter name: serverSettings”}

c# - 使用 appsettings.json 配置 Serilog 以将某些日志过滤到不同的文件

c# - 将对象的 linq 表达式应用于项目列表,其中该对象是项目的属性(包装器)

c# - 用具体实现 C# 替换基类