Utilizzando LINQ, come posso ottenere i nomi delle colonne di una tabella? C# 3.0, 3.5 quadroLINQ: ottenere i nomi delle colonne della tabella
risposta
Presumo si intende utilizzando LINQ to SQL, in cui guardare caso presso la struttura DataContext.Mapping. Questo è quello che uso.
Se non vuoi dire questo, forse puoi approfondire quello che stai cercando di ottenere?
Voglio scrivere un programma usando LINQPad (C#) Che può creare istruzioni di inserimento SQL fuori rotta per questo ho bisogno dei nomi delle colonne delle tabelle. –
potrebbe essere chiarito un po '... questa non è una grande risposta. –
Alcuni esempi di utilizzo sarebbero grandiosi. L'API di mappatura è un po 'poco intuitiva, per non dire altro ... –
Iterate le proprietà delle classi L2S con la riflessione
utilizzare il metodo ExecuteQuery sul contesto dati ed eseguire questo script SQL:
var columnNames = ctx.ExecuteQuery<string>
("SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('your table name');");
Questo vi dà l'IEnumerable<string>
con tutti i nomi delle colonne in quella tabella specificati.
Ovviamente, se si desidera e necessario, è sempre possibile recuperare ulteriori informazioni (ad esempio tipo di dati, lunghezza massima) dalla vista del catalogo sys.columns
in SQL Server.
Se si sta parlando di ottenere le colonne per una tabella associata, vedere this answer per vedere come ottenere gli attributi della colonna. Da lì è possibile ottenere i nomi delle colonne, i tipi, ecc.
Mi sono imbattuto in questa domanda cercando la stessa cosa e non ho visto una risposta veramente buona qui. Questo è quello che mi è venuto in mente. Basta lanciarlo in LINQPad in modalità di espressione 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
Modificare come si desidera.
forse è troppo tardi, ma, ho risolto questo problema da questo codice
var db = new DataContex();
var columnNames = db.Mapping.MappingSource
.GetModel(typeof(DataContex))
.GetMetaType(typeof(_tablename))
.DataMembers;
Grazie, mi hai appena salvato un carico di tempo. Questo è migliore della risposta accettata perché mostra come utilizzare la proprietà DataContext.Mapping. –
Per VB.Net utilizzare 'GetType (DataContext)' invece di 'typeof (DataContext)'. – Zarepheth
Ho usato questo codice in LINQPad
from t in typeof(table_name).GetFields() select t.Name
Si noti che è la versione non pluralizzata del nome della tabella. –
Il codice qui sotto vi lavorò dal restituisce tutti i nomi delle colonne di tavolo
var columnnames = from t in typeof(table_name).GetProperties() select t.Name
Non sono sicuro del motivo per cui questo non è stato pubblicizzato, è la risposta più elegante. Ecco l'equivalente della sintassi lambda: var columnnames = typeof (nome_tabella) .GetProperties(). Select (t => t.Name); – draconis
Forse questo non è stato svitato dato che non solo ottieni le colonne ma anche proprietà aggiuntive. Di solito è una classe parziale con in mente l'estensibilità. – mbx
var query = from x in DataBase.Table_Name
select x.Column_Name;
sp_help 'TableName'
Un'opzione per una finestra LINQPad SQL per MS SQL server
In LINQPad:
TableNames.Take (1) funziona.
È veloce da digitare. (Anche se sei in un mondo ideale, sarebbe meglio non selezionare alcuna riga.)
Nota è la forma pluralizzata di TableName. Puoi anche fare Take (0) e guardare la scheda dei risultati SQL.
- 1. Ottieni i nomi delle colonne
- 2. Basta avere i nomi delle colonne dalla tabella alveare
- 3. Come ottenere i nomi delle colonne della tabella in fase di esecuzione in C#?
- 4. come ottenere i nomi delle colonne delle chiavi primarie per una determinata tabella?
- 5. Ottenere i nomi delle colonne con BCP queryout
- 6. ottenere i nomi di colonna della tabella in Hibernate
- 7. Ottenere SqlBulkCopy per onorare i nomi delle colonne
- 8. mysql, scorrere i nomi delle colonne
- 9. inserire dati nella tabella senza specificare i nomi delle colonne
- 10. Come si restituiscono i nomi delle colonne di una tabella?
- 11. Hive - ottieni i nomi delle colonne
- 12. Recupera i nomi delle colonne da java.sql.ResultSet
- 13. Pivot duplicare i nomi delle colonne e ottenere tutti i valori per le colonne
- 14. Ottenere i nomi delle colonne in un'entità doctrine2
- 15. Creare una tabella con i nomi delle colonne derivate da valori di riga di un'altra tabella
- 16. colonne Classifica e selezionando i nomi delle colonne
- 17. Come ottenere i nomi delle colonne dal risultato della query Hibernate in Java?
- 18. come ottenere i nomi delle colonne di una tabella in accesso ms?
- 19. Come ottenere i nomi delle colonne da una tabella in sqlite tramite PRAGMA (.net/C#)?
- 20. Come ottenere i nomi delle colonne con i dati delle query in sqlite3?
- 21. data.frame senza rovinare i nomi delle colonne
- 22. PHP MySQL ottenere i nomi delle colonne Mentre scorrendo tutti i record
- 23. Come ottenere i nomi dei campi della tabella in CakePHP
- 24. Utilizzo di GetSchemaTable() per recuperare solo i nomi delle colonne
- 25. SQL: Vista dinamica con i nomi delle colonne in base ai valori delle colonne nella tabella di origine
- 26. Ottenere i nomi delle variabili con JavaScript
- 27. SQL nomi delle colonne Selezione come valori
- 28. Oracle SQL: come trovo il nome della tabella in base ai nomi delle colonne?
- 29. in R, personalizzare i nomi delle colonne create da dcast.data.table
- 30. python sqlalchemy ottiene dinamicamente i nomi delle colonne?
Ricomposto a 'linq-to-sql', modificare la domanda se si intende un altro tipo di" LINQ ". –
Sfortunatamente questa query viene eseguita all'interno di LINQPad, quindi come faccio a ottenere il contesto in LINQPad? –