使用对象属性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
非常感谢!
使用反射
string value = someData.GetType().GetProperty(key).GetValue(someData).ToString();