这更像是一个征求意见的问题。我正在处理一个同时使用NHibernate和EntityFramework的项目(这是有意为之,因为我需要灵活性)。所以,我开始着手开发一个仓储模式,但遇到了一个小问题。
基本上,我想知道你们对以下几个方面的看法:
1. 仓储应该是单例吗?- 这将使我保持会话打开状态,但同时,我认为它会保持与数据库的连接打开。对于NHibernate,ORM只能保证对象在同一会话中是相同的。这对于简单编码来说是理想的,但可以通过键和重写GetHashCode和Equals方法来克服这个问题。 2. 如果它不是单例(甚至如果它是),我应该在使用后立即关闭连接吗?对于NHibernate,这意味着每次"处理"仓储后都要关闭会话。 3. 你是否已经为NHibernate或EF 4.0实现了仓储模式并找到了有用的想法?
基本上,我想知道你们对以下几个方面的看法:
1. 仓储应该是单例吗?- 这将使我保持会话打开状态,但同时,我认为它会保持与数据库的连接打开。对于NHibernate,ORM只能保证对象在同一会话中是相同的。这对于简单编码来说是理想的,但可以通过键和重写GetHashCode和Equals方法来克服这个问题。 2. 如果它不是单例(甚至如果它是),我应该在使用后立即关闭连接吗?对于NHibernate,这意味着每次"处理"仓储后都要关闭会话。 3. 你是否已经为NHibernate或EF 4.0实现了仓储模式并找到了有用的想法?