Deserialice una fila de la tabla de la base de datos directamente en un objeto C #: ¿existe un mecanismo para esto?

Soy nuevo en C # y esto puede terminar siendo una pregunta tonta, pero tengo que preguntar de todos modos.

¿Existe un mecanismo con C # para deserializar un resultado de una sentencia SQL ejecutada en un objeto ac #?

Tengo un progtwig C # que lee una tabla de un servidor SQL que almacena la fila en un objeto. Asigno manualmente cada valor de columna a un miembro del objeto, así que me preguntaba si hay una manera de serializar la fila de forma automática en un objeto. O incluso mejor, una tabla entera en una colección de objetos del mismo tipo.

Mi entorno es C #, VS2010, .NET4, SQLServer2008. El supuesto es que conozco las columnas que necesito, no es una consulta de selección *.

Un enlace a un buen ejemplo también será apreciado.

Gracias.

Si las columnas se nombran según los nombres de la tabla, puede hacer esto con LINQ-to-SQL sin ningún código de asignación, simplemente usando ExecuteQuery :

 using(var dc = new DataContext(connectionString)) { var objects = dc.ExecuteQuery(sql); // now iterate object } 

Además, el sql se puede parametrizar automáticamente usando string.Format Reglas de string.Format :

 class Person { public int Id {get;set;} public string Name {get;set;} public string Address {get;set;} } using(var dc = new DataContext(connectionString)) { List people = dc.ExecuteQuery(@" SELECT Id, Name Address FROM [People] WHERE [Name] = {0}", name).ToList(); // some LINQ too } 

Por supuesto, también puede usar las herramientas de VS para crear un contexto de datos escrito, permitiendo cosas como:

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

Podrías usar un ORM para hacer esto. ADO.NET Entity Framework (consulta los tutoriales en video ) y NHibernate son opciones populares.