2017-06-05 15 views
0

これまでに試したこと 以下のコードでは、動的な文字列として "tablename"を渡しました。MVCのEntity Frameworkを使用してテーブル名を渡すことによって列名を返す方法

public List GetColumnNames(string tablename) 
{ 
    using (var Context = new MCPEntities()) 
    { 
     var names = typeof(AdministratorInformation).GetProperties().Select(property => property.Name).ToArray(); 
     return names.ToList(); 
    } 
} 
+0

上記のコードの問題点は何ですか?これは、あなたが行ったように、テーブルタイプに反映させるだけで達成できます。あなたが試しているアプローチでは、コンテキストやEFは必要ありません。 –

+0

"string tablename"は選択された値(テーブル名)をドロップダウンリストにしたもので、選択したテーブル名の列名をドロップダウンリストから表示したいだけです。 –

答えて

0

これは動作するはずです。私はそれをテストしていない。 特定のタイプのプロパティのリストを返すメソッドを作成します。 MVCを使用している場合、これはコントローラーアクションになります。

public ActionResult ColumnNames(string tableName) 
    { 
     var columns = Type.GetType("MyNamespace." + tableName).GetProperties().Select(p => p.Name).ToList(); 
     return Json(columns, JsonRequestBehavior.AllowGet); 
    } 

結果をドロップダウンメニューにバインドします。

+0

ここではNULL参照例外エラーが発生します。var columns = Type.GetType(tableName).GetProperties()。Select(p => p.Name).ToList(); –

+0

答えを更新しました。完全修飾パスを指定する必要があります。 –

+0

"MyNamespace"手段? –

関連する問題