Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据库表行直接反序列化为C对象-是否有这样的机制?_C# - Fatal编程技术网

C# 将数据库表行直接反序列化为C对象-是否有这样的机制?

C# 将数据库表行直接反序列化为C对象-是否有这样的机制?,c#,C#,我是C语言的新手,这可能会成为一个愚蠢的问题,但我还是要问 是否有一种使用C的机制将已执行SQL语句的结果反序列化为C对象 我有一个C程序,可以从sql server读取一个表,该表将行存储在一个对象中——我手动将每个列的值分配给一个对象成员,因此我想知道是否有一种方法可以自动将行序列化为一个对象。甚至更好的方法是,在一组相同类型的对象中创建一个完整的表 我的环境是C、VS2010、.NET4、SQLServer2008。 假设我知道我需要的列,这不是select*查询 链接到一个简洁的例子也将

我是C语言的新手,这可能会成为一个愚蠢的问题,但我还是要问

是否有一种使用C的机制将已执行SQL语句的结果反序列化为C对象

我有一个C程序,可以从sql server读取一个表,该表将行存储在一个对象中——我手动将每个列的值分配给一个对象成员,因此我想知道是否有一种方法可以自动将行序列化为一个对象。甚至更好的方法是,在一组相同类型的对象中创建一个完整的表

我的环境是C、VS2010、.NET4、SQLServer2008。 假设我知道我需要的列,这不是select*查询

链接到一个简洁的例子也将不胜感激


谢谢。

您可以使用一个。签出和是常用的选择。

如果列是根据表名命名的,则可以使用LINQ to SQL执行此操作,而无需任何映射代码—只需使用:

当然,您也可以使用VS工具创建类型化数据上下文,允许以下操作:

using(var dc = new SpecificDataContext(connectionString)) {
    List<Person> people =
         (from person in dc.People
          where person.Name == name
          select person).ToList();
}

LINQtoEntities旨在取代ADO.NET实体框架和LINQtoSQL。看到所有的评论都消失了,显然我把这个标记为正确答案,这里发生了什么?
class Person {
    public int Id {get;set;}
    public string Name {get;set;}
    public string Address {get;set;}
}
using(var dc = new DataContext(connectionString)) {
    List<Person> people = dc.ExecuteQuery(@"
          SELECT Id, Name Address
          FROM [People]
          WHERE [Name] = {0}", name).ToList(); // some LINQ too

}
using(var dc = new SpecificDataContext(connectionString)) {
    List<Person> people =
         (from person in dc.People
          where person.Name == name
          select person).ToList();
}