【问题标题】:linq-to-sql Query Result to c# Dictionary - How Tolinq-to-sql 查询结果到 c# 字典 - 如何
【发布时间】:2012-11-07 11:24:43
【问题描述】:

使用 c# 和 LinqToSql 我查询数据库表并返回单个唯一记录。

问题: 如何将查询结果放入字典中: 数据库表的列名作为字典键和 将数据库表的列值作为字典值。

注意:我并不总是知道表格的列名的名称或编号

Dictionary<string, string> QueryResult = new Dictionary<string, string>

var UniqueRecord = (from tbl DataContext.Table
                                 where tbl.ColumnName1.Equals(Parameter1) 
                                 && tbl.ColumnName2.Equals(Parameter2)
                                 select tbl);

//如何将var UniqueRecord添加到字典中

================================================ ====================================

我最终使用了这个

================================================ ====================================

var UniqueRecord = (from tbl DataContext.Table
                                 where tbl.ColumnName1.Equals(Parameter1) 
                                 && tbl.ColumnName2.Equals(Parameter2)
                                 select tbl);


 foreach(var item in OnlineBezeichnungRekord)
 {
   var properties = item.GetType()
                        .GetProperties()
                        .ToDictionary(p => p.Name, p => p.GetValue(item, null).ToString());

   Dictionary<string,string> DictionaryValues = properties;

  }

【问题讨论】:

  • UniqueRecord.ToDictionary(.....)

标签: c# linq-to-sql lambda


【解决方案1】:

考虑到手动将DataRow 转换为Dictionary 是多么简单,在你的情况下我不会使用Enumerable.ToDictionary,而只是循环:

Private Function GetDictionaryFromDataRow(dr As DataRow) As Dictionary(Of String, Object)
  Dim dict As New Dictionary(Of String, Object)
  For Each col As DataColumn In dr.Table.Columns
    dict.Add(col.ColumnName, dr.Item(col))
  Next
  Return dict
End Function

然后确保您的查询返回DataRow,因此请使用UniqueRecord(0)

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    相关资源
    最近更新 更多