Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用实体框架的SQL Server 2012数据库资源管理器工具_C#_Sql Server_Asp.net Mvc_Entity Framework_Reflection - Fatal编程技术网

C# 使用实体框架的SQL Server 2012数据库资源管理器工具

C# 使用实体框架的SQL Server 2012数据库资源管理器工具,c#,sql-server,asp.net-mvc,entity-framework,reflection,C#,Sql Server,Asp.net Mvc,Entity Framework,Reflection,我的任务是使用实体框架和ASP.NET MVC为SQL Server 2012数据库创建数据库资源管理器工具 我已经创建了所需的db上下文,并且能够让静态查询正常工作。当前的方法效率很低,因为它涉及到为每个表创建控制器操作和视图——这是针对表中的列等 我希望只有一个控制器操作和一个视图来呈现表的分页记录 我能够使用db上下文上的反射来显示表名。 我使用的代码非常简单: foreach (var propertyInfo in db.GetType().GetProperties()) { //e

我的任务是使用实体框架和ASP.NET MVC为SQL Server 2012数据库创建数据库资源管理器工具

我已经创建了所需的db上下文,并且能够让静态查询正常工作。当前的方法效率很低,因为它涉及到为每个表创建控制器操作和视图——这是针对表中的列等

我希望只有一个控制器操作和一个视图来呈现表的分页记录

我能够使用db上下文上的反射来显示表名。 我使用的代码非常简单:

foreach (var propertyInfo in db.GetType().GetProperties())
{
//every property here is a persisted entity

}
但是,我无法从数据库上下文数据库集中获取记录

我的设计涉及将表名实体框架实体名作为查询字符串参数传递。 e、 g

对应的列表操作方法为:

public ActionResult List(string id)
{   
    ViewBag.TableName = id;
    //here I need to put up code to get first page of the table user_info
    return View(); 
}
静态列表操作方法为:

    public ActionResult List(string id)
    {
        var rowsPerPage = 20;
        int? page = 1;
        var skipCount = rowsPerPage * (page ?? 0);
        var vm = new ViewModel<user_info>();
        vm.RowsPerPage = rowsPerPage;
        vm.Records = db.user_info.OrderByDescending(x => x.update_date).Skip(skipCount).Take(rowsPerPage).ToList();
        vm.CurrentPageNo = page ?? 1;
        vm.HasNextPage = db.user_info.OrderByDescending(x => x.update_date).Skip(skipCount + rowsPerPage).Take(1).ToList().Count > 0;
        return View(vm);
    }

是否有一种动态查询实体框架上下文的方法

我不建议使用实体框架或任何ORM来创建SQL Explorer类型的工具。我宁愿使用ADO.NET,也会查询系统表,系统存储过程来查询所有的数据库对象


我可以想象,创建动态数据上下文是可能的。但这将包括在运行时使用反射创建映射类的复杂性。默认情况下,ORM系统不会为您提供任何帮助。

Hi@GauravSharma,我可以静态创建数据上下文。所以没有问题。设计时构建的上下文也允许我有条件地隐藏其中一个表。在这种情况下,您只需要创建一个通用控制器,您可以在其中传递模型实体,请在代码中粘贴一个控制器操作。我将为您将其转换为通用。