繁体   English   中英

存储库,UoW模式和实体框架之间的关注点实践分离

[英]Separation of Concerns Practice with Repository, UoW Pattern and Entity Framework

在尝试使用Entity Framework Model First解决存储库和工作单元模式时,我想到了关注点分离问题。 在我的解决方案中,我有4个项目:数据,域,存储库,控制台。 在我的数据层中,我有EF,edmx文件。 在域层,我有我的对象,在存储库层,我有repo接口和UOW类。 在控制台层,我尝试在屏幕上写名称。 但是为了在屏幕上写名称,我必须将EF dll添加到Console Project并将数据库连接字符串写到app.config。 但这是错误的,我想分开关注。 控制台项目不应了解EF,而应仅与Repo层通信以使用工作单元(UOW)类。

这是我的结构:

在此处输入图片说明

两个项目使用EF dll,即

在此处输入图片说明

我简单的Console应用程序引用(这就是我想要的样子,仅使用repo层和domian层)

在此处输入图片说明

我的控制台代码是:

在此处输入图片说明

在这里,除非我将EF添加到项目并将连接字符串添加到项目,否则控制台代码不起作用。 我究竟做错了什么? 任何建议都会有所帮助,我调查了一些github项目,但找不到一个简单的解决方案,该解决方案在app.configweb.config中没有连接字符串

我不认为连接字符串依赖性违反了关注点分离。 启动项目了解环境。 但:

如果要避免使用连接字符串,可以创建在连接信息中传递的上下文

public class MyContext : DbContext
public MyContext(DbConnection dbConnection, bool contextOwnsConnection)
        : base(dbConnection, contextOwnsConnection) 

我还引用了EF作为软件包,因此可以加载它。

 <package id="EntityFramework" version="6.0.1" targetFramework="net45" />

但是我只是与Resharper核对过。 可以安全删除。 所以我没有对EF的代码引用。 仅作为环境负荷/包装参考。

我认为没有打破代码分离领域驱动的开发范式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM