自动将SQL返回到通用列表

时间:2013-03-18 15:12:49

标签: c# sql linq

我有一个连接数据库并提取数据的函数。

将数据返回到Expando对象中。

我通常然后将expando对象转换为一个类,在动态行上使用linq语句但是,我想知道我是否有一个包含SQL代码中所有字段的类,是否有任何方法可以让系统自动生成映射到我班级的每个领域?

public List<CLIENTALL> FullTableClients()
{
  const string abstractStatement =@"SELECT * FROM CLIENT WHERE CLINO = '0000001'";

  var sqlStatement = new SqlStatements(abstractStatement, _reportingBackOffice.GenerateTables);

  var data = _reportingBackOffice.ExecuteQuery(sqlStatement);

  var name = (from dynamic line in dataArray
              select new CLIENTALL()
              {
                ClientNumber = line.?????
                //normally I would write line.ClientNumber
                }).ToList();

  return name;
}

正如您在上面所看到的,我需要一种方法来几乎引用类中的字段名称,并在从行分配时将其用作变量?

谢谢,

大卫

1 个答案:

答案 0 :(得分:0)

如果你有一个linq2SQL datacontext,你可以写:

const string abstractStatement = @"SELECT * FROM CLIENT WHERE CLINO = '0000001'";
using (var db = new MyDataContext())
  var col = db.ExecuteQuery<CLIENTALL>(abstractStatement).ToList();

它会将SQL语句的列映射到CLIENTALL

中的属性