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