我正在创建一个ASP.NET应用程序,允许用户编辑和插入持久存储在SQL Server数据库中的数据。我想实现一个控制器类来处理某些实体的查询,缓存结果并在插入或更新数据时触发事件。我需要在我的数据模型中为每个实体使用这些控制器类之一。我不确定的是如何创建不同的用户会话可以访问的这种单例类。如何实现ASP.NET跨会话数据控制器类?
例如,我在我的数据模型中有一个雇员实体。我想要一个EmployeeController类,它处理从数据库检索雇员,向数据库发送插入和更新,保存所有雇员的缓存,并在插入或更新雇员时触发事件。其他用户会话中的对象可以监听并响应这些事件。
所以:
- 我在正确的轨道上?
- 我应该使用ASP.NET MVC框架来实现这个吗?
- 当第一个用户需要它们并让后续的并发用户访问同一个类时,我该如何实例化这些控制器类?
编辑:
我一直在研究,因为@ TomTom的答案控制器类作为一个反模式的想法。我不相信这种或那种方式。
我仍然需要上述问题#3的答案。现在让我们放弃控制器类的具体想法。如何创建任何类,它是:
- 由多个用户会话访问,
- 只允许一个实例,
- 如果没有用户会话被删除,
- 触发事件其他班级可以收听。
你是说如果一个控制器类是一个好主意,如果它是每个实体一个,但不是一个好主意,如果它是一切控制器类? – 2011-02-24 08:05:10
每个实体一个是反模式。它破坏了控制器可以处理的很多逻辑(如订购操作),因为它超级细化。 – TomTom 2011-02-24 08:16:42
你能解释一下你的意思吗? – 2011-02-24 08:20:06