C# 尝试在LINQ2实体查询中获取连接的字符串

C# 尝试在LINQ2实体查询中获取连接的字符串,c#,linq,entity-framework,linq-to-entities,C#,Linq,Entity Framework,Linq To Entities,我正在尝试从实体中两个字符串字段的组合结果创建一个字典 我正在使用此词典填充下拉列表。对于这种特殊情况,键和值都是相同的 以下是我到目前为止提出的问题: var qry = ( from x in db.Treatment_Type select new { TreatmentCode = x.Project_Classification + ":" + x.Improvement_Type }) .AsEnumerable() .ToD

我正在尝试从实体中两个字符串字段的组合结果创建一个
字典

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

以下是我到目前为止提出的问题:

var qry = (
    from x in db.Treatment_Type
    select new { 
        TreatmentCode = x.Project_Classification + ":" + x.Improvement_Type
    })
    .AsEnumerable()
    .ToDictionary<string, string>(x => x);
var qry=(
从x到db.u类型
选择新{
治疗代码=x.项目\分类+“:”+x.改进\类型
})
.可计算的()
.ToDictionary(x=>x);
我试图将
Project\u分类
Improvement\u类型
值合并为一个值。它以匿名类型的形式返回,而不是字符串,因此我得到了一些错误,关于字典如何无法从匿名类型推断类型,并建议我显式地声明该类型。当我这样做的时候,我得到了匿名类型无法转换为字符串的错误


我怎样才能做到这一点呢?

你为什么不把它作为匿名类型处理掉呢?这对你没有帮助:

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\u类型中的x开始)
选择x.项目\分类+“:”+x.改进\类型)
.可计算的()
.ToDictionary(x=>x);
仅当您实际从匿名类型中获益时才使用它:)

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

var qry = db.Treatment_Type
            .Select(x => x.Project_Classification + ":" + x.Improvement_Type)
            .AsEnumerable()
            .ToDictionary<string, string>(x => x);
var qry=db.Treatment\u类型
.选择(x=>x.Project\u分类+”:“+x.Improvement\u类型)
.可计算的()
.ToDictionary(x=>x);

为什么不把它作为匿名类型处理掉呢?这对你没有帮助:

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\u类型中的x开始)
选择x.项目\分类+“:”+x.改进\类型)
.可计算的()
.ToDictionary(x=>x);
仅当您实际从匿名类型中获益时才使用它:)

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

var qry = db.Treatment_Type
            .Select(x => x.Project_Classification + ":" + x.Improvement_Type)
            .AsEnumerable()
            .ToDictionary<string, string>(x => x);
var qry=db.Treatment\u类型
.选择(x=>x.Project\u分类+”:“+x.Improvement\u类型)
.可计算的()
.ToDictionary(x=>x);
var qry=(从db.Treatment\u类型中的x开始)
选择new{TreatmentCode=x.Project\u Classification+”:“+x.Improvement\u Type}).AsEnumerable().ToDictionary(x=>x);
它将作为匿名类型返回,因为您正在使用匿名类型批注。是的。新的{//some stuff}

var qry=(来自db.Treatment\u类型中的x
选择new{TreatmentCode=x.Project\u Classification+”:“+x.Improvement\u Type}).AsEnumerable().ToDictionary(x=>x);
它将作为匿名类型返回,因为您正在使用匿名类型批注。是的。新的{//somestuff}

试试看

var qry = (from x in db.Treatment_Type
select x.Project_Classification + ":" + x.Improvement_Type ).ToDictionary<string, string>(x => x);
var qry=(从db.Treatment\u类型中的x开始)
选择x.Project\u Classification+”:“+x.Improvement\u Type).ToDictionary(x=>x);
试试看

var qry=(从db.Treatment\u类型中的x开始)
选择x.Project\u Classification+”:“+x.Improvement\u Type).ToDictionary(x=>x);

尝试将此
更改为字典(x=>x)到这个ToDictionary中(x=>x,x=>x)


我猜这两个“项目分类”和“改进类型”值都是字符串类型。

尝试将此
更改为字典(x=>x)到这个ToDictionary中(x=>x,x=>x)


我猜这两个“项目分类”和“改进类型”值都是字符串类型。

Doh。。。星期五很晚了。。。谢谢嗯。。。星期五很晚了。。。谢谢