使用对象属性C#、LINQ映射sql表的列名

本文关键字:sql 映射 LINQ 对象 属性 | 更新日期: 2023-09-27 18:28:47

如有任何帮助,我将不胜感激。

我想知道是否有一种方法可以将表的列名与对象的属性值进行映射。

带有数据的Sql服务器表(例如DATA):

------------------------------------
 NO | NAME        | ADDRESS      
------------------------------------
1    Some name      Some address
2    Another name   Another address
-------------------------------------

还有另一个具有静态字段的表(比如FORMATS):

-----------------
ID | LINE_KEY
-----------------
1   NO
2   NAME
3   ADDRESS

现在我需要映射这两个表并填写字典:

DATA someData = db.DATA.Find(2); //get some a record from DATA table
Dictionary<string,string> mappedData = new Dictionary<string,string>();
foreach(FORMAT format in db.FORMATS)
{
   string key = format.LINE_KEY;
   //how??  pseudo code
   string value = someData.Columns(column=>column.NAME == format.LINE_KEY).ColumnValue 
   mappedData.Add(key,value);
}

因此,我的字典中应该有以下值:

key    | value
----------------------
NO       2
NAME     Another name 
ADDRESS  Another address

非常感谢!

使用对象属性C#、LINQ映射sql表的列名

使用反射

string value = someData.GetType().GetProperty(key).GetValue(someData).ToString();