0

我正在使用三层构建 C#/.Net 3.5 应用程序:UI(视图/视图模型)、服务和数据访问/持久性。

服务层:每个服务层实例都与一个唯一的持久性实例相关联。服务层通过接口引用持久层。

持久层:目前,持久层接口有一个使用(Fluent)NHibernate 的具体实现。所有持久层实例共享同一个 ISessionFactory。每个持久性实例都使用该工厂打开自己的 ISession。

目标:按照Ayende Rahien的建议,让每个视图模型在自己的数据上下文(又名 ISession)中运行。为了实现这一点,我的应用程序为每个 VM 提供了自己的服务层实例(反过来,它有自己的持久层实例)。对我来说,拥有这么多同一个服务层类的实例闻起来很可疑。

问题:这是一个好方法吗?离开每个 VM 一个服务实例并转移到每个应用程序一个服务实例会更好吗?如果是这样,我将如何做到这一点并仍然为每个 VM 提供自己的数据上下文?

谢谢你,

4

1 回答 1

0

我认为您当前的设计是正确的。合并服务实例没有任何好处。

于 2010-06-23T00:15:32.033 回答