【发布时间】:2013-11-13 10:11:04
【问题描述】:
我在尝试使用实体框架模型优先解决存储库和工作单元模式时提出了关注点分离问题。在我的解决方案中,我有 4 个项目:数据、域、存储库、控制台。在我的数据层中,我有 EF、edmx 文件。在域层,我有我的对象,在存储库层,我有 repo 接口和 UOW 类。在控制台层,我尝试在屏幕上写名字。但是为了在屏幕上写名字,我必须将 EF dll 添加到控制台项目并将数据库连接字符串写入 app.config。但我猜这是关注点分离的错误。控制台项目不应该知道 EF,它应该只与 Repo 层通信以使用 Unit of Work(UOW) 类。
这是我的结构:
两个项目使用 EF dll
我的简单控制台应用参考(这就是我想要的样子,只使用 repo 层和 domian 层)
我的控制台代码是:
这里控制台代码不起作用,除非我将 EF 添加到项目并将连接字符串添加到项目。我究竟做错了什么?任何建议都会有所帮助,我查看了一些 github 项目,但找不到在 app.config 或 web.config 中没有连接字符串的简单解决方案
【问题讨论】:
-
正在运行的应用程序总是提供连接字符串。对于数据层,这是一个注入依赖。如果 DAL 有连接字符串,您将永远无法将它与其他数据库一起使用。
-
为什么要将它与其他数据库一起使用?你什么意思?
-
开发、测试、生产……当您的应用程序在客户的本地运行时,您如何告诉 DAL 使用哪个数据库?
-
好的,谢谢,你是对的
标签: c# entity-framework repository-pattern unit-of-work