Usando LINQ, ¿cómo puedo obtener los nombres de columna de una tabla? C# 3.0, 3.5 marcoLINQ: Obtener nombres de columna de tabla
Respuesta
supongo que te refieres mediante el uso de LINQ a SQL, en el que caso de mirada en la propiedad DataContext.Mapping. Eso es lo que uso.
Si no quiere decir eso, ¿puede explicar lo que está tratando de lograr?
Quiero escribir un programa usando LINQPad (C#) que puede construir sentencias SQL insert fuera de curso para esto requiero los nombres de columna de las tablas. –
podría aclarar esto un poco ... esto no es una gran respuesta. –
Algunos ejemplos de uso serían geniales. La API de asignación es un poco intuitiva, por decir lo menos ... –
Iterar las propiedades de sus clases L2S con la reflexión
utilizan el método ExecuteQuery en el contexto de datos y ejecutar esta secuencia de comandos SQL:
var columnNames = ctx.ExecuteQuery<string>
("SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('your table name');");
Esto le da una IEnumerable<string>
con todos los nombres de las columnas de esa tabla que ha especificado.
Por supuesto, si lo desea y necesita, siempre puede recuperar más información (por ejemplo, tipo de datos, longitud máxima) de la vista de catálogo sys.columns
en SQL Server.
Si está hablando de obtener las columnas para una tabla mapeada, consulte this answer para ver cómo llegar a los atributos de la columna. Desde allí puede obtener los nombres de columna, tipos, etc.
Me encontré con esta pregunta buscando lo mismo y no vi una muy buena respuesta aquí. Esto es lo que se me ocurrió. Simplemente colóquelo en LINQPad en el modo de expresión C#.
from t in typeof(UserQuery).GetProperties()
where t.Name == "Customers"
from c in t.GetValue(this,null).GetType().GetGenericArguments()[0].GetFields()
select c.Name
Modifique como mejor le parezca.
tal vez es demasiado tarde, pero, he resuelto este problema mediante el código
var db = new DataContex();
var columnNames = db.Mapping.MappingSource
.GetModel(typeof(DataContex))
.GetMetaType(typeof(_tablename))
.DataMembers;
Gracias, me acabas de ahorrar un montón de tiempo. Esto es mejor que la respuesta aceptada porque muestra cómo usar la propiedad DataContext.Mapping. –
Para VB.Net use 'GetType (DataContext)' en lugar de 'typeof (DataContext)'. – Zarepheth
He utilizado este código en LINQPad
from t in typeof(table_name).GetFields() select t.Name
Tenga en cuenta que es la versión no simplificada del nombre de la tabla. –
El código siguiente se trabajó a partir devuelve todos los nombres de las columnas de la tabla
var columnnames = from t in typeof(table_name).GetProperties() select t.Name
No estoy seguro de por qué esto no fue votado, es la respuesta más elegante. Aquí está la sintaxis lambda equivalente: var columnnames = typeof (table_name) .GetProperties(). Select (t => t.Name); – draconis
Quizás esto no haya sido votado, ya que no solo obtiene las columnas sino también propiedades adicionales. Por lo general, es una clase parcial con extensibilidad en mente después de todo. – mbx
var query = from x in DataBase.Table_Name
select x.Column_Name;
sp_help 'TableName'
Una opción para una ventana LINQPad SQL para MS SQL Server
En LINQPad:
TableNames.Take (1) funciona.
Es rápido de escribir. (Aunque esté en un mundo ideal, sería mejor no seleccionar ninguna fila.)
Tenga en cuenta que es la forma pluralizada de TableName. También puede hacer Take (0) y mirar la pestaña de resultados de SQL.
- 1. Obtener nombres de columna
- 2. LINQ: nombres de columna personalizados
- 3. Obtener lista de nombres de columna de una tabla vacía
- 4. ¿Cómo obtener una lista de nombres de columna
- 5. Encuentra nombres de columna en la tabla SQLite vacío
- 6. LINQ: Obtener detalles de la tabla
- 7. En vb.net, cómo obtener los nombres de columna de una tabla de datos
- 8. expresión LINQ miembro de obtener el nombre de columna
- 9. ir a buscar nombres de columna para la tabla específica
- 10. Consulte los nombres de columna/tabla usando cadenas?
- 11. Hibernate - NonUniqueDiscoveredSqlAliasException cuando dos tabla tiene mismos nombres de columna
- 12. seleccionar en una tabla con diferentes nombres de columna
- 13. python sqlalchemy obtener nombres de columna de forma dinámica?
- 14. jqgrid obtener todos los nombres de columna de grillas
- 15. Obtener nombres/tipos de columna devueltos de un procedimiento almacenado
- 16. Obtener los nombres de columna de un ndarray pitón numpy
- 17. Oracle consulta a buscar nombres de columna
- 18. nombres de tabla completo
- 19. cómo crear una tabla dinámica con una columna dinámica utilizando la expresión de árbol linq
- 20. Obtener todos los nombres de tabla configurados en SessionFactory
- 21. Recuperar nombres de columna de java.sql.ResultSet
- 22. obtener la tabla unirse con el valor de columna
- 23. DataGridView Editar nombres de columna
- 24. ddply nombres de columna agregados
- 25. Conseguir nombres de los campos de clase y los nombres de columna de la tabla de metadatos NHibernate
- 26. Cómo citar nombres de columna con Zend_Db?
- 27. PHP MySQL Obtener nombres de columna Mientras iteración a través de todos los registros
- 28. Hacer buenos nombres de columna R
- 29. ¿Cómo puedo obtener la columna de tabla correspondiente (td) de un encabezado de tabla (th)?
- 30. Formato de columna de tabla
Reetiquetado a 'linq-to-sql', por favor edite su pregunta si se refería a algún otro tipo de" LINQ ". –
Desafortunadamente, esta consulta se ejecuta dentro de LINQPad entonces, ¿cómo obtengo el contexto en LINQPad? –