C# 使用Json.net序列化字典并选择实体查询

C# 使用Json.net序列化字典并选择实体查询,c#,.net,json,entity-framework,dictionary,C#,.net,Json,Entity Framework,Dictionary,我有这样的代码 var records = from part in this.DataWorkspace.AUTOData.TestParameterViews select new {Name = part.ParamName, Val = part.CurrentValue} File.WriteAllText(@"c:\params.json", JsonConvert.SerializeObject(new{parameters = records },

我有这样的代码

var records = from part in this.DataWorkspace.AUTOData.TestParameterViews
    select new
      {Name = part.ParamName, Val = part.CurrentValue}     

File.WriteAllText(@"c:\params.json", JsonConvert.SerializeObject(new{parameters = records }, Formatting.Indented));
生成的json文件如下所示

var records = from part in this.DataWorkspace.AUTOData.TestParameterViews
    select new
      {Name = part.ParamName, Val = part.CurrentValue}     

File.WriteAllText(@"c:\params.json", JsonConvert.SerializeObject(new{parameters = records }, Formatting.Indented));
{
 "parameters": [
 {
   "Name": "Var1",
   "Val": 6666.0
 },
 {
   "Name": "Var2",
   "Val": 1.0
 },
 {
   "Name": "Var3",
   "Val": 5500.0
 },
等等…列出实体中的所有成员

var records = from part in this.DataWorkspace.AUTOData.TestParameterViews
    select new
      {Name = part.ParamName, Val = part.CurrentValue}     

File.WriteAllText(@"c:\params.json", JsonConvert.SerializeObject(new{parameters = records }, Formatting.Indented));
问题:我希望json输出为字典格式(如下所示),但仍然查询实体

var records = from part in this.DataWorkspace.AUTOData.TestParameterViews
    select new
      {Name = part.ParamName, Val = part.CurrentValue}     

File.WriteAllText(@"c:\params.json", JsonConvert.SerializeObject(new{parameters = records }, Formatting.Indented));
"parameters": {
    "Var1": 6666.0,
    "Var2": 1.0,
    "Var3": 5500.0,
我已经尝试了下面的代码,但对语法有疑问。具体而言,Intellisense在
select
上指示错误,表示“无法隐式转换类型…”存在显式转换(是否缺少转换?)

var records = from part in this.DataWorkspace.AUTOData.TestParameterViews
    select new
      {Name = part.ParamName, Val = part.CurrentValue}     

File.WriteAllText(@"c:\params.json", JsonConvert.SerializeObject(new{parameters = records }, Formatting.Indented));
Dictionary records=来自this.DataWorkspace.AUTOData.TestParameterViews中的部件
选择新字典
{Name=part.ParamName,Val=part.CurrentValue}
WriteAllText(@“c:\params.json”,JsonConvert.SerializeObject(新的{parameters=records},Formatting.Indented));

感谢您的帮助!

创建字典。然后循环通过TestParameterView添加到字典。然后序列化

var records = from part in this.DataWorkspace.AUTOData.TestParameterViews
    select new
      {Name = part.ParamName, Val = part.CurrentValue}     

File.WriteAllText(@"c:\params.json", JsonConvert.SerializeObject(new{parameters = records }, Formatting.Indented));
Dictionary<string, float> records = new Dictionary<string, float>();
this.DataWorkspace.AUTOData.TestParameterViews.ForEach(part => part.ParamName, part.CurrentValue);
File.WriteAllText(@"c:\params.json", JsonConvert.SerializeObject(new { parameters = records }, Formatting.Indented));
Dictionary records=newdictionary();
this.DataWorkspace.AUTOData.TestParameterViews.ForEach(part=>part.ParamName,part.CurrentValue);
WriteAllText(@“c:\params.json”,JsonConvert.SerializeObject(新的{parameters=records},Formatting.Indented));

我在循环语法方面仍然有问题。intellinsense在上面列出的
.ForEach
上抛出了一个错误。我在Intellisense autocomplete中没有ForEach语句。这是我没有参考的EF语法吗?很抱歉,响应太晚了。它在System.Collections.Generic.nam中espace作为列表的一种方法。能否将TestParameterView转换为列表