2017-06-05 48 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”。手段? –