2

像這樣的簡單語句:「從客戶中選擇x,y,z」位於數據訪問層中。位於應用程序體系結構中的微型orm工具在哪裏

如果查詢中存在邏輯,例如爲來自某個城市的客戶進行過濾,那麼我必須在我的業務層中進行過濾,然後在內存中的客戶收集中進行過濾。

當我現在把微型ORM工具,他們經常表現出與像邏輯SQL語句:

var a = db.SingleOrDefault<Product>("SELECT * FROM SalesLT.Product WHERE ProductID = @0, 123); 

我應該在哪裏現在就把這行代碼?在業務層還是數據訪問層?

聲明中有屬於業務層的邏輯。但後來我有

選擇語句內我的BLL ?? ??

這是令人困惑的。

+0

你有沒有使用傳統的ORM做任何工作?如果是的話,你把它放在哪裏 – 2012-07-28 13:05:55

+1

如果我使用EF,那麼我會在業務邏輯層看到存儲庫,因爲EF本身就是DAL。 – Pascal 2012-07-28 13:21:49

回答

0

如果您需要3層模型,則需要在數據訪問層上使用數據庫上下文或微型orm。

+0

如果我想要一個3層模型,並且將微Orm放在DAL中(如您所說),當我使用微Orm工具進行復雜的連接等時,我的業務邏輯層中有什麼? – Pascal 2012-07-28 13:23:08

0

在我看來,這是個人喜好。我喜歡接近使用它們的方法的SQL,除非需要讓它們在不同的BLL類之間共享。它使變化更容易。對於簡單的操作,你可以使用擴展方法,如Dapper.Simple Crud,這樣你就不會一遍又一遍地寫相同的操作。你可以看看我的github repo的實施。我將它放在Micro-ORM上的my talk。該解決方案具有Massive,Dapper,PetaPoco和Simple.Data的示例用法。這裏有一個link對一個服務類,所以你不必深入挖掘。如果您有任何建議,請讓我知道,或者更好地向我發送拉取請求。 :)