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

时间:2014-10-31 12:08:55

标签: c# sql-server linq entity-framework

我很感激任何帮助。

我想知道是否有办法用对象的属性值映射表的列名。

带有数据的SQL Server表(例如,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

非常感谢!

1 个答案:

答案 0 :(得分:0)

使用反思

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