【发布时间】:2016-04-29 20:14:57
【问题描述】:
我们必须为大学项目编写数字标牌应用程序。我们最初使用的语言和框架是:.Net、C#、实体框架(计划使用 NHibernate)、Winforms(计划使用 WPF)。
我们被告知这样做的方式可以让我们轻松更改表示和持久性逻辑。
因此,我们决定使用三层:“了解”服务层(或业务逻辑层)的 UI 层、了解持久层的服务层和持久层。他们每个人都是一个单独的项目。 目前,域类或实体类(在本例中为 Campaign、RSSFeed、User 等类)包含在持久性项目或层下的“模型”命名空间中。
我们为数据访问逻辑定义了一些接口,以便能够轻松切换存储介质。
问题是:如果为了更改持久性逻辑,我们必须更改实际项目引用以替换那些替换(例如 NHibernate 的实体框架),那么应该在哪里定义这个接口?更重要的是,应该在哪里定义域类?添加另一个名为“域”的层是否“有效”,持久层和服务层都知道?
如果我写的东西很奇怪,我很抱歉,我的书面英语有些生疏。
【问题讨论】:
标签: c# .net entity-framework persistence business-logic-layer