2009-10-21 88 views
5

我想在我的web應用程序中使用某種nosql數據庫,它是用asp.net mvc編寫的,但找不到任何有用的東西。我有一個看MongoDB和CouchDB,但我想爲我的查詢比他們有更好的api(強類型不是魔術字符串)。 這樣的東西是否存在.NET?基於文檔的.NET數據庫

回答

2

我是淨驅動程序蒙戈背後的主要作者。目前還沒有ORM類似的映射器。相反,它適用於相當於字典的簡單文檔。使用反射來遍歷文檔中的字段並將它們分配給對象的屬性並不困難。過去我已經爲LDAP結果寫了一個簡單的東西。你不必擔心Mongo的SQL注入問題,因爲實際上並沒有被解析的查詢語言。所有的司機都用母語與Mongo交談。如果您動態生成JavaScript並將其發送給數據庫,則存在一些潛在的問題,但這種需求通常很少見。如果您對使用該驅動程序有任何疑問,可隨時將其發佈到Google羣組或通過GitHub發送消息。

+0

嗨,我決定在我的項目中使用mongo,但是我不知道如何在我的文檔中嵌入一些對象,假設我有問題文檔並希望在其中有答案,但不知道該怎麼做此 – 2009-11-14 22:14:48

+0

嵌入文檔只是包含文檔上的屬性。這是一個班輪。如果需要,你當然可以將它分成多行。 Document doc = new Document()。Append(「embeddedDoc」,new Document()。Append(「attr1」,「val1」)); – 2009-11-16 14:50:51

+0

好吧,但有可能添加文件的集合,讓我們說我有問題,並希望收集它的答案,當我嘗試這樣做,我有例外becouse關鍵答案已經存在 – 2009-11-16 23:04:26

1

MongoDB不使用魔術字符串,但使用查詢文檔來表示查詢。還有一個open source C# driver可用。我不確定C#驅動程序的具體細節,但如果一個不存在的話,在其上添加驗證層應該相對容易。例如,在Python和Ruby中的驅動程序之上有類似的項目。

+0

是的,但請告訴我如何以類型安全的方式保存和檢索我的域對象? – 2009-10-22 09:15:26

+0

當你說「類型安全」時,我不確定你正在尋找什麼。我認爲你可以做的最好的事情就是使用數據庫訪問層來處理驗證你正在保存的數據並離開MongoDB。 – mdirolf 2009-10-24 21:55:29

1

您可以使用ADO.NET連接到文本文件,並使用SQL語法和通過ADO.NET發佈的命令讀取/寫入它們。 There's an example in this article。您的數據將以逗號或製表符分隔的記錄格式存儲爲可讀的格式。大數據集當然不會很快。 我不確定你是否試圖擺脫SQL數據庫和SQL語法。文本文件解決方案可由SQL進行查詢。

您還可以通過將Excel電子表格作爲SQL數據源(即使它們不是)通過ADO.NET訪問來對待它們。

1

不知道這是你在找什麼,但你可以嘗試http://www.db4o.com/我從來沒有用它自己,但它可以幫助你

1

當問這個問題時,這不存在......但是現在有Raven DB,一個用C#編寫的文檔數據庫Ayende Rahien