Question

I would like to use some kind of nosql database in my web application which is written in asp.net mvc , but cannot find anything useful. I have a looked at MongoDB and CouchDB but i'd like to have better api (strongly typed not magic strings) for my queries than they have. Is anything like this exists for .NET ?

Was it helpful?

Solution

I'm the principle author behind the .Net driver for Mongo. There isn't currently a ORM like mapper for it yet. Instead it works on simple documents that are the equivalent of a dictionary. It wouldn't be hard to use reflection to iterate over the fields in a document and assign them to properties on an object. I've written a simple thing like that for LDAP results in the past. You don't have to worry about sql injection with Mongo as there really isn't a query language that gets parsed. All drivers talk to Mongo in its native tongue. There is some potential if you dynamically generate javascript and send it to the DB but the need for that should mostly be rare. If you have any questions about using the driver feel free to post them to the Google Group or send a message through GitHub.

OTHER TIPS

MongoDB doesn't use magic strings, but uses query documents to represent queries. There is also an open source C# driver available. I'm not sure of the specifics of the C# driver, but it should be relatively easy to add a validation layer on top of it if one doesn't exist already. There are similar projects on top of the drivers in Python and Ruby, for example.

You can connect to text files using ADO.NET and read/write them using SQL syntax and Commands issued through ADO.NET. There's an example in this article. Your data will be stored in human-readable format in comma- or tab-delimited record format. Of course it won't be fast with large data sets. I'm unsure if you're trying to get away from both SQL databases and SQL syntax. The text file solutions is queryable by SQL.

You can also do the same with Excel spreadsheets by treating them like SQL data sources (even though they're not) through ADO.NET access.

Not sure if it is what you are looking for but you could try http://www.db4o.com/ I've never used it myself but it may help you

This didn't exist at the time when this question was asked...but now there is Raven DB, a document database written in C# by Ayende Rahien.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top