【发布时间】:2011-06-21 12:32:57
【问题描述】:
我有一个要求,只有超级管理员才能修改“实时”数据。
目前,如果普通管理员想要对实时数据进行更改:-
- 超级管理员取消发布数据
- 普通管理员进行更改
- 超级管理员批准更改并发布数据
如果我想尝试消除第 1 步并在超级用户批准更改之前保持旧数据保持有效,我有哪些选择?
我正在使用 ASP.NET MVC 和 EF4,因此我对围绕 EF 的解决方案特别感兴趣,这些解决方案可以对我的控制器透明,但是我也有兴趣了解数据库层中的解决方案(或完全不同的上下文)
【问题讨论】:
-
您能否提供有关您的数据库设计的信息,其中将发布哪些(哪些字段)和关系以及需要批准?
-
我更多的是寻找通用解决方案,而不是特定于模式的解决方案。解决方案适用于某些实体而不适用于其他实体是否有特殊原因?
-
EF 提供了自定义生成代码并在保存之前验证更改的方法。但是您的批准逻辑等是业务逻辑,而 EF 只是一个数据访问层。此外,管理员如何可视化未经批准的更改,这也是业务逻辑的一部分。单个项目没有问题,但对象层次结构很难概括。
-
Mvc 之上的东西很好。我不想让我的 XController 知道超级管理员保存 X 和普通管理员提交更改以供批准之间的区别。显然,其他地方的另一个控制器将不得不处理批准先前更改的超级管理员。如果你能给出一个简单的对象图上的解决方案示例,可能会这样做。
标签: .net database entity-framework