C# 使用实体框架的SQL Server 2012数据库资源管理器工具
我的任务是使用实体框架和ASP.NET MVC为SQL Server 2012数据库创建数据库资源管理器工具 我已经创建了所需的db上下文,并且能够让静态查询正常工作。当前的方法效率很低,因为它涉及到为每个表创建控制器操作和视图——这是针对表中的列等 我希望只有一个控制器操作和一个视图来呈现表的分页记录 我能够使用db上下文上的反射来显示表名。 我使用的代码非常简单: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
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,我可以静态创建数据上下文。所以没有问题。设计时构建的上下文也允许我有条件地隐藏其中一个表。在这种情况下,您只需要创建一个通用控制器,您可以在其中传递模型实体,请在代码中粘贴一个控制器操作。我将为您将其转换为通用。