2009-10-21 26 views
5

Web sitemde asp.net mvc'de yazılmış bir tür nosql veritabanı kullanmak istiyorum, ancak yararlı bir şey bulamıyorum. MongoDB ve CouchDB'ye baktım ama sorgularımın sahip olduklarından daha iyi bir api (güçlü bir şekilde sihirli dizeleri yazmamış) olmasını isterim. .NET için böyle bir şey var mı?Belge tabanlı veritabanı için .NET

cevap

2

yardımcı olabilir http://www.db4o.com/ deneyebilirsiniz buysa

+0

Merhaba, projemde mongo kullanmaya karar verdim, ancak belgendeki bazı nesneleri nasıl yuvalayacağımı bilmiyorum, bir soru belgesine sahip olduğumu ve yanıtları almak istediğimi, ancak nasıl yapılacağını bilmiyorum Bu –

+0

Gömülü belgeler, yalnızca bir belgedeki niteliklerdir. İşte tek bir astar. Gerekirse, kesinlikle birden fazla satıra ayırabilirsiniz. Belge doc = new Document(). Ekle ("embeddedDoc" Ekle, yeni Belge(). Ek ("attr1", "val1")); –

+0

Tamam, ama en ı sorum var ve ben anahtar cevaplar zaten –

1

MongoDB, sihirli dizeleri kullanmaz, ancak sorguları göstermek için sorgu belgelerini kullanır. Ayrıca bir open source C# driver mevcuttur. C# sürücüsünün özelliklerinden emin değilim, ancak zaten mevcut değilse, bunun üzerine bir doğrulama katmanı eklemek nispeten kolay olmalıdır. Örneğin Python ve Ruby'deki sürücülerin üstünde benzer projeler var.

+0

Evet, ancak lütfen etki alanımdaki nesneyi güvenli bir şekilde nasıl kaydedip geri almam gerektiğini söyleyin. –

+0

"tip güvenliği" dediğinizde tam olarak ne aradığınızdan emin değilim. Yapabileceğin en iyi şey, tasarruf ettiğin ve MongoDB'den çıkıp çıkarılan verileri doğrulayan bir veritabanı erişim katmanı kullanmak. – mdirolf

1

ADO.NET kullanarak metin dosyalarına bağlanabilir ve SQL sözdizimi ve ADO.NET aracılığıyla verilen Komutları kullanarak bunları okuyabilir/yazabilirsiniz. There's an example in this article. Verileriniz, virgülle veya sekmeyle ayrılmış kayıt biçiminde insan tarafından okunabilir biçimde saklanır. Tabii ki büyük veri setleri ile hızlı olmayacak. Hem SQL veritabanlarından hem de SQL sözdiziminden uzaklaşmaya çalışıyorsanız emin değilim. Metin dosyası çözümleri SQL tarafından sorgulanabilir.

Aynı zamanda, Excel elektronik tabloları ile ADO.NET erişimi üzerinden SQL veri kaynakları (olmasalar bile) gibi davranarak da yapabilirsiniz. o aradığınız ama kendim hiç kullanmadım ama ben Mongo için .Net sürücünün arkasında prensip yazarım size

1

emin değilim. Henüz bunun için ORM benzeri bir mapper yok. Bunun yerine, bir sözlüğün karşılığı olan basit belgeler üzerinde çalışır. Bir belgedeki alanlar üzerinde yineleme yapmak ve bunları bir nesnenin özelliklerine atamak yansıma kullanmak zor olmaz. Geçmişte LDAP sonuçları için böyle basit bir şey yazdım. Mongo ile sql enjeksiyonu hakkında endişelenmenize gerek yok çünkü gerçekten ayrıştırılan bir sorgu dili yok. Bütün sürücüler kendi dillerinde Mongo ile konuşurlar. Dinamik olarak javascript oluşturup bunu DB'ye gönderirseniz biraz potansiyel vardır, ancak bunun çoğu zaman nadir olması gerekir. Sürücüyü kullanma hakkında herhangi bir sorunuz varsa, bunları Google Grubu’na yayınlamaktan çekinmeyin veya GitHub’tan mesaj gönderin.

1

Bu sorunun sorulduğu sırada mevcut değildi ... ancak şimdi , C# ile yazılmış bir belge veritabanı Ayende Rahien tarafından yazılmıştır.