LINQを使用して、テーブルの列名を取得するにはどうすればよいですか? C#3.0、反射LINQ:テーブルの列名を取得
答えて
であなたのL2Sクラスの3.5フレームワーク
私はLINQPad(C#)を使ってプログラムを書いています。これはもちろん、テーブルの列名が必要なSQL挿入ステートメントを作成できます。 –
これは少し明確にすることができます...これは多くの答えではありません。 –
いくつかの使用例は素晴らしいでしょう。マッピングAPIは、最小限に抑えるためには直感的ではありません。 –
反復プロパティは、私はあなたがDataContext.Mapping施設で、その場合には一見、SQLにLINQを使用して意味を前提としています。それが私が使うものです。
もしあなたがそれを意味するわけではないのであれば、達成しようとしているものについて詳しく述べることができますか?
は、あなたのデータコンテキスト上のexecuteQueryメソッドを使用して、このSQLスクリプトを実行します。
var columnNames = ctx.ExecuteQuery<string>
("SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('your table name');");
これはあなたが指定したテーブルのすべての列名を持つIEnumerable<string>
を与えます。
もちろん、必要に応じて、SQL Serverのsys.columns
カタログビューからさらに多くの情報(データ型、最大長など)を取得することができます。
マッピングされたテーブルの列を取得する方法については、this answerを参照して列の属性を取得する方法を参照してください。そこから列の名前、種類などを得ることができます。
私は同じことを探してこの質問に遭遇し、ここで本当に良い答えを見ませんでした。これは私が思いついたものです。 C#の式モードでLINQPadに投げてください。
from t in typeof(UserQuery).GetProperties()
where t.Name == "Customers"
from c in t.GetValue(this,null).GetType().GetGenericArguments()[0].GetFields()
select c.Name
あなたが適合するように修正してください。
は、たぶんそれは私が、私は以下のコードが戻ってから働いていたすべての列名のだろうLinqPad
from t in typeof(table_name).GetFields() select t.Name
ありがとう、あなたは私に時間のボートロードを保存しました。これは、DataContext.Mappingプロパティを使用する方法を示しているので、これは受け入れられた答えより優れています。 –
VB.Netでは 'typeof(DataContext)'の代わりに 'GetType(DataContext)'を使います。 – Zarepheth
このコードによって、この問題を解決し、遅すぎですが、テーブル
var columnnames = from t in typeof(table_name).GetProperties() select t.Name
テーブル名のバージョンが異なることに注意してください。 –
でこのコードを使用し
var db = new DataContex();
var columnNames = db.Mapping.MappingSource
.GetModel(typeof(DataContex))
.GetMetaType(typeof(_tablename))
.DataMembers;
var query = from x in DataBase.Table_Name
select x.Column_Name;
sp_helpはLinqPadで、MS SQLサーバ
にLinqPad SQLウィンドウの 'テーブル名'
オプション:
TableNames.Take(1)動作します。
これは高速です。 (理想的な世界では、行を選択しない方が良いでしょう)
TableNameの複数形です。 Take(0)を実行して、SQL resultsタブを見ることもできます。
- 1. 文字列名のみでLinqエンティティを取得する方法
- 2. LINQモデリング列名と同じ名前テーブル名
- 3. GWTのクリック時にCellテーブルのヘッダ列名を取得
- 4. PostgreSQLのテーブルの列名とデータ型を取得するには?
- 5. SQLiteでテーブルの列名を取得する
- 6. ルビーでテーブル名の配列を取得するには
- 7. Linq to SQL複数の列を取得
- 8. LINQで2列の重複を取得
- 9. テーブルのプライマリキーの名前を取得
- 10. すべてのテーブル名と各テーブルのすべての列名と行名を取得する方法は?
- 11. Entity Framework - テーブルの列名を文字列配列として取得する
- 12. Magentoで実際のテーブル名を取得
- 13. DbEntityEntry(コードファースト)からテーブル名を取得
- 14. Hibernateでモデルからテーブル名を取得
- 15. Doctrine:名前のテーブルからランダムな名前を取得
- 16. LINQ:2つのテーブルから情報を取得するクエリ
- 17. LINQのInvalidCastExceptionを取得するvar匿名オブジェクトの使用
- 18. doctrine2エンティティの列名を取得する
- 19. JSTLで配列のクラス名を取得
- 20. 2つのID列を持つテーブルから名前を取得するクエリ
- 21. LinQ結果セットのカラム数とカラム名を取得する
- 22. Linq/C#接合部テーブルからの情報の取得
- 23. テーブル内の別のテーブルの列を取得するには?
- 24. HBaseテーブルからすべての列名を取得できますか?
- 25. csvにエクスポートするときにデータベースからmysqlテーブルの列名を取得
- 26. マップされたテーブル(Sql)を使用してマップされた列名を取得
- 27. クエリで列名を取得する
- 28. 配列クラス名を取得する
- 29. LinqとLambda式がグループと別名を取得する
- 30. LINQ to SQLフィールド名で値を取得する方法
'linq-to-sql'に変更されました。他の種類の" LINQ "を意味する場合は、質問を編集してください。 –
残念ながら、このクエリはLINQPad内で実行されるので、LINQPadでコンテキストを取得するにはどうすればよいですか? –