0
我有3個項目(C#)API,BLL和DAL。 DAL引用DAL和API引用BLL。在我的API中不使用DAL而使用BLL函數
在我的API,我需要使用所有的CRUD功能,但因爲VS表示,「類型‘布拉布拉’的定義我無法從我的BLL使用功能未引用的程序集,您需要添加引用(DAL)「,但我不想在API項目中引用DAL。有沒有辦法做到這一點,而不使用我的DAL項目?
我有3個項目(C#)API,BLL和DAL。 DAL引用DAL和API引用BLL。在我的API中不使用DAL而使用BLL函數
在我的API,我需要使用所有的CRUD功能,但因爲VS表示,「類型‘布拉布拉’的定義我無法從我的BLL使用功能未引用的程序集,您需要添加引用(DAL)「,但我不想在API項目中引用DAL。有沒有辦法做到這一點,而不使用我的DAL項目?
在我看來,你試圖達到的是設計這個項目的好方法。我也是這樣做;只是我將在下面解釋的小差異。在API中不引用DAL可確保每次對DAL的調用僅通過BLL進行。這是必要的,因爲我想把我所有的數據處理邏輯放在一個地方。如果它是分佈式的,很難找到問題。
我有四個項目:
這是一種參考鏈。 DAL => BLL => API
。相反的順序不應該存在。 Utils
應該是常見的東西,例如實體聲明,例外,枚舉應該去的地方。
注意:儘管您沒有在API中引用DAL,但您必須部署它。
爲避免在API中使用Utils
,您可能需要添加一層DTO並將它們與實體進行映射。請參考我的其他question。
如果BLL依賴於它,則必須引用DAL您的主項目。否則,BLL將如何找到要調用的函數? DAL的編譯代碼將會丟失。這就是它的工作原理,沒什麼可擔心的。 – ADyson
但是BLL應該在某處使用DAL嗎? – McNets
@ADyson我的BLL項目使用DAL,但爲什麼我應該在API中添加對DAL的引用,如果我引用BLL呢? –