2011-05-04 47 views
2

我會在我的網絡應用程序的MongoDB,我試圖讓我的C#代碼中使用MongoDB的C#驅動程序的「正道」的感覺。CRUD與MongoDB(通過C#驅動程序)的首選方式是什麼?

我從MS SQL世界來,我與SQL Server處理有以下原因時,我只使用存儲的特效:

  1. SQL代碼是完全從C#代碼

  2. 易分離設置SQL訪問安全(你做它在存儲過程級)

  3. SQL邏輯是從C#完全邏輯分離。

由於同樣的原因,我從未使用EF或LinqToSQL。

以下是一些事情,我想了解之前,我滾德袖子,開始代碼移植:

  1. 我需要使用某種包裝的(我使用的是自制或我的中間層和低級ADO.NET調用存儲過程之間的包裝;包裝創建C#函數,內部調用SP)

  2. 我應該在存儲過程的leu中使用MongoDB的js服務器端方法 - 再次分離從C#代碼邏輯或shoudl SQL邏輯我把所有的邏輯C#,只是做簡單的插入/更新到MongoDB的

  3. 的正常方式CRUD操作使用MongoDB的C#的驅動程序是使用插入,查找,更新和刪除的方法來處理的正確編程我使用的應用程序與MongoDB的

回答

4

任何其他建議MongoCollection。還有一個Save方法,用於爲新文檔調用Insert併爲現有文檔調用Update。

文檔本身可以是BsonDocument的情況下,如果你想在一個相當低的水平工作,或您自己的C#類的實例,如果你想爲你的域模型創建類。 C#驅動程序可以處理從BSON文檔映射C#類。

隨着MongoDB中你很少使用任何JavaScript服務器端,所以真的不需要任何等同於您的SQL存儲的特效。你只需要用C#做所有事情。

您可能會決定創建一個數據訪問層,但它將比您使用SQL Server的任何東西都要薄,因爲C#驅動程序處理對象和BSON文檔之間的映射。

+0

謝謝您的回答!你能指點我一些關於如何將我的C#類映射到Bson文檔的文章嗎?谷歌沒有透露太多,也許我使用錯誤的關鍵字:)或者。如果你能給我一個簡單的例子,那會非常有幫助! – Andrey 2011-05-05 00:23:39

+1

當然。在http://www.mongodb.org/display/DOCS/CSharp+Driver+Serialization+Tutorial – 2011-05-05 00:59:02

+0

感謝您的文章! – Andrey 2011-05-05 03:48:32

相關問題