相关疑难解决方法(0)

抽象 CRUD 控制器是个好主意吗?

我们正在使用 ASP.NET MVC 开发一个相当大的应用程序,一开始我们发现拥有一个具有常见 CRUD 操作(新建、保存、删除...)以及默认列表操作的抽象基本控制器可能很有用。在我们的例子中,我们有 20 多个实体通过这种控制器进行管理。

这有效并避免了重复一些代码并使应用程序更加同构,但是当您看到控制器时很难准确地看到它实现了哪些操作,并且它可能实现了一些不应该存在的操作。例如,假设您想要编辑传递名称而不是 id,则必须创建一个新的 EditByName(name),即使这样做,您仍然可以使用 Edit(id) 操作,因为它位于基础中。

对我来说,整个事情对我来说有点味道,但我没有找到任何显示替代方案的示例,因为我看到的 MVC 应用程序的领域非常狭窄。有什么建议吗?有什么例子吗?(我不一定使用 ASP.NET MVC,我认为这个问题对于任何 MVC 框架来说都是非常普遍的)。

model-view-controller asp.net-mvc crud

5
推荐指数
1
解决办法
3826
查看次数

如何使用EntityFramework为CRUD操作实现通用MVC Web控制器和通用视图

我正在研究.NET MVC WEB应用程序的设计,并确定我必须管理33个表(到目前为止).通过管理我的意思是典型的SQL操作(插入,更新,删除和查询)

这33个表中有16个是需要使用典型CRUD方法处理的参考表.参考表我指的是其他表引用并在组合中使用的表(即国家,州,城市,货币等)

我对.NET中的MVC很新,但是看到当你使用脚手架时,你会得到具有典型方法的控制器:

  • 索引(获取)
  • 详细信息(获取)
  • 创建(获取+发布)
  • 编辑(获取+发布)
  • 删除(获取+发布)

同样在数据库方面,我计划使用典型的DAO,使用EntityFramework实现INSERT,UPDATE,DELETE和LIST(查询操作)

这是我的问题(最后;-)

由于50%的表格将以相同的方式在视觉和功能上进行管理并提供相同的CRUD操作,因此我可以使用哪种模式或方法来实现最佳的代码/视图重用?.

我想避免的是脚手架16个实体获得16个控制器,每个控制器有16*5个视图(创建,删除,细节,编辑和索引)

是否有可能Single Main controller路由或管理所有这16个实体并调用实体所需的操作?

是否可以使用一组足够通用的视图(创建,删除,详细信息,编辑和索引)来处理相同的16个实体?

如果以上两个是可能的,我将如何在Web项目的配置中连接路由,以便仍然能够为这16个实体中的每一个具有特定的URL(/ Countries/Edit/5,/ States/Edit/5和那么)?

这是我认为我可以实现这一目标的一种方式:

  • 为所有16个实体提供Abstract/Common基类或接口,其中包含管理EntityFramework上下文的Save,GetAll和Delete数据操作的逻辑(即IManageData)
  • 让EntityDao使用EntityFramework调用已实现IManageData并执行操作的任何类的方法.
  • 有一个抽象/公共基类(Web控制器),它具有可以调用IManageData方法的所有16个实体的CRUD操作的通用逻辑

请帮助我验证/完成我的设计草案,并提出一些警告或更好的方法来实现这一目标.

只是提供一些上下文是一个链接的脚手架EntitieFramework实体与MVC项目https://code.msdn.microsoft.com/MVC5-Demo-with-Entity-c6bc81df approch

这是一个非常相似的问题,我想在确定如何实现这一目标之前验证.

通用CRUD控制器和视图

c# asp.net-mvc entity-framework

2
推荐指数
1
解决办法
2972
查看次数