2017-06-05 55 views
0

我到目前爲止嘗試過的, 在下面的代碼中通過了「tablename」作爲動態字符串。如何通過在MVC中使用實體框架傳遞表名稱來返回列名稱

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

「字符串表名」是下拉列表選定的值(表名),我只想從下拉列表中顯示所選表名的列名。 –

回答

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

在這裏獲取空引用異常錯誤,var columns = Type.GetType(tableName).GetProperties()。Select(p => p.Name).ToList(); –

+0

更新了答案。您需要提供完全合格的路徑。 –

+0

「MyNamespace」。手段? –