C# 自动将SQL返回到通用列表
我有一个连接到数据库并提取数据的函数 数据返回到Expando对象中 然后,我通常将expando对象转换成一个类,linq语句位于一个动态行上。然而,我想知道,如果我有一个包含SQL代码中所有字段的类,系统是否有任何方法自动映射到类中的每个字段 即C# 自动将SQL返回到通用列表,c#,sql,linq,C#,Sql,Linq,我有一个连接到数据库并提取数据的函数 数据返回到Expando对象中 然后,我通常将expando对象转换成一个类,linq语句位于一个动态行上。然而,我想知道,如果我有一个包含SQL代码中所有字段的类,系统是否有任何方法自动映射到类中的每个字段 即 公共列表FullTableClient() { const string abstractStatement=@“SELECT*FROM CLIENT,其中CLINO='0000001'; var sqlStatement=新的SqlStateme
公共列表FullTableClient()
{
const string abstractStatement=@“SELECT*FROM CLIENT,其中CLINO='0000001';
var sqlStatement=新的SqlStatements(abstractStatement,_reportingBackOffice.GenerateTables);
var data=_reportingBackOffice.ExecuteQuery(sqlStatement);
变量名称=(来自dataArray中的动态行
选择new CLIENTALL()
{
客户号=行。?????
//通常我会写line.ClientNumber
}).ToList();
返回名称;
}
正如您在上面看到的,我需要一种方法来几乎引用类中的字段名,并在我从第行赋值时将其用作变量
谢谢
David如果您有一个linq2SQL数据上下文,您可以编写:
const string abstractStatement = @"SELECT * FROM CLIENT WHERE CLINO = '0000001'";
using (var db = new MyDataContext())
var col = db.ExecuteQuery<CLIENTALL>(abstractStatement).ToList();
conststringabstractstatement=@“SELECT*fromclient,其中CLINO='0000001';
使用(var db=new MyDataContext())
var col=db.ExecuteQuery(abstractStatement.ToList();
它会将SQL语句中的列映射到
CLIENTALL中的属性
我不确定Expando对象,但通常我们使用AutoMapper进行映射,这就是您要寻找的内容吗?从中,您的问题应该有合理的范围。如果你能想象一整本书都能回答你的问题,那你问得太多了代码>-有很多关于ORM的书。同意Jamiec的观点,在询问SO之前,你应该做一些研究。有很多技术可以将表映射到类,反之亦然。例如,您可以使用google实体框架。
const string abstractStatement = @"SELECT * FROM CLIENT WHERE CLINO = '0000001'";
using (var db = new MyDataContext())
var col = db.ExecuteQuery<CLIENTALL>(abstractStatement).ToList();