簡體   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