C# Linq到SQL不同值字典
我希望使用LINQtoSQL查询,然后将其转换为不同值的字典。键和值都将来自查询C# Linq到SQL不同值字典,c#,linq-to-sql,C#,Linq To Sql,我希望使用LINQtoSQL查询,然后将其转换为不同值的字典。键和值都将来自查询 var model = db.LANDGRID_PLSS_SECTIONS .Select(x => new {x.MERIDIAN_CODE,x.MERIDIAN}) .ToDictionary(kvp=> kvp.MERIDIAN_CODE as string, kvp=> kvp.MERIDIAN as string)
var model = db.LANDGRID_PLSS_SECTIONS
.Select(x => new {x.MERIDIAN_CODE,x.MERIDIAN})
.ToDictionary(kvp=> kvp.MERIDIAN_CODE as string, kvp=> kvp.MERIDIAN as string)
.Distinct();
这将返回一个异常,表示具有该值的项键已存在
此词典的类型必须为dictionary
更新
在表中,MERIDIAN_代码将始终具有相同的MERIDIAN值。但是,它在表中确实出现过多次。Meridian是该代码的用户友好版本。我需要在视图中两个都可用 试试这个:
var model = db.LANDGRID_PLSS_SECTIONS
.GroupBy(s => s.MERIDIAN_CODE, s => s.MERIDIAN)
.ToDictionary(s => s.Key, v => v.First());
试试这个:
var model = db.LANDGRID_PLSS_SECTIONS
.GroupBy(s => s.MERIDIAN_CODE, s => s.MERIDIAN)
.ToDictionary(s => s.Key, v => v.First());
当您对不同的值使用相同的键时,您希望得到什么?也许您应该转换为
查找
,而不是字典
?字典中的键必须是唯一的。听起来您从查询中得到的是具有不同值的同一个键。是否有方法确保查询只返回不同的值,然后转换为字典?您需要将调用移动到distinct()
在调用ToDictionary
之前。当您对不同的值使用相同的键时,请选择GroupBy,而不是选择What?也许您应该转换为查找
,而不是字典
?字典中的键必须是唯一的。听起来您从查询中得到的是具有不同值的同一个键。是否有方法确保查询只返回不同的值,然后转换为字典?您需要将调用移动到distinct()
在调用ToDictionary
之前。GroupBy而不是SelectBy这意味着您在节中有一些带有空值的条目。没错!一旦我更正了空值,这就起作用了。这意味着你在部分中有一些带有空值的条目。没错!一旦我修正了空值,这就起作用了。