【发布时间】:2011-03-01 20:25:23
【问题描述】:
这更像是一个我正在寻找意见的问题。我正在开发一个同时使用 NHibernate 和 EntityFramework 的项目(这是设计使然,需要灵活性)。因此,我继续着手研究存储库模式,但遇到了一个小难题。
基本上,我想知道你们对以下领域的看法:
存储库应该是单例吗? - 这将允许我保持会话打开,但同时,我认为它将保持打开到数据库的连接。对于 NHibernate,ORM 只能保证一个对象在同一个会话中是相同的。这对于简单的编码来说是理想的,但有明确的方法可以使用键和覆盖 GetHashCode 和 Equals 方法来克服这个问题。
如果它不是单例(或者即使是),我是否应该在使用连接后立即关闭它们?对于 NHibernate,这意味着每次 Repository 被“Disposed”(每次使用后)都关闭会话。
您是否为 NHibernate 或 EF 4.0 实现了存储库模式并发现了任何有用的想法?
【问题讨论】:
-
@John:没有 C#.NET 这样的东西。它只是称为“C#”。
-
显然这是话题,我不确定谁会如此不诚实地投票不是。 @John Saunders 你在吹毛求疵。 C# 是 EMCA 语言规范,然后是 C#.NET,C# 的标准视图损害了 .NET 的所有功能 + 原始语言本身。
-
@Chris:大多数时候有人说“C#.NET”是因为他们知道“VB.NET”并假设命名方案是相同的。他们不是。
-
@Chris:我觉得应该移到 Programmer's,这是一个更适合进行主观讨论的地方。
-
我的意思是让那些想要了解该主题的人了解我的目标是在 .NET 平台上的 C# 应用程序中实现我的功能。我也暗示 C# 是 .NET,但正如 Chris 所说...我只是想让它清楚,C# 或 .NET 的人看@this,因为我也可以理解 VB.NET 示例...
标签: c# .net nhibernate entity-framework design-patterns