[英]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.config
或web.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.