2012-09-24 39 views
0

我有一個3層C#應用程序,用表示層業務層和訪問數據庫的數據層,C#n層數據層的設計問題

我有從代表的數據庫連接的數據層中的連接對象。 我有一種代表應用程序的用戶的用戶對象(即從用戶表中的一行) 在業務層中存在對象的用戶,

什麼是實現保存,創建,用戶對象上的刪除功能的最佳途徑, 它應該是通過連接對象上的某種數據連接器,即connection.userdataconnector.save(user),其中dataconnector允許訪問用戶功能(用戶表),或者它應該通過用戶對象上的功能,即User.Save();

目前的趨勢是什麼?

P.S.我正在使用SQLClient庫,並看到許多使用數據連接器的MSDN文章。鏈接到執行你的答案源代碼/示例應用程序,將不勝感激

+0

或者您可以使用像Dapper和DapperExtensions這樣的輕量級框架。這些框架可以基於簡單的POCO實體提供強大的實體映射和基本的CRUD實現。 – gustavodidomenico

回答

2

目前的趨勢是使用ORM輕質ORM甚至ADO.NET根據您的應用程序有多複雜,但你可以使用:

  1. ADO.NET
  2. 重量輕ORM:DapperMassive
  3. ORM:Entity Framework,NHibernate。

如果您的應用程序很簡單,只需處理CRUD操作,您可以使用(1)或(2)。但是,如果您的應用程序在業務上非常複雜,則應該使用ORM,它支持許多功能:工作單元,數據映射程序,延遲加載...您還可以使用另一個選項來使用NoSql替換傳統數據庫。

順便說一句,術語不是在這種情況下是正確的,它應該被稱爲其中參考邏輯

+0

「但是如果你的應用程序在業務上非常複雜,你應該使用ORM,甚至使用NoSql。」是一個相當普遍的概念。所以我會提供一個反面概括...如果您的應用程序很小且很簡單,那麼選擇哪種技術幾乎與您的應用程序大而複雜無關。如果您的應用程序龐大而複雜,請仔細考慮您選擇的技術並注意您與自己結婚的限制。 –

+0

感謝您的回答,我知道這些技術,但選擇使用該系統。數據庫中,我的問題是從設計和使用數據層和業務層以及數據如何與業務層交互或更新的人尋求更多基於設計的答案。但也許我會考慮轉向EF。 –