2009-10-21 16 views
5

Me gustaría utilizar algún tipo de base de datos nosql en mi aplicación web escrita en asp.net mvc, pero no puedo encontrar nada útil. He examinado MongoDB y CouchDB, pero me gustaría tener mejores api (cadenas fuertemente tipeadas no mágicas) para mis consultas que las que tienen. ¿Existe algo así para .NET?Base de datos basada en documentos para .NET

Respuesta

2

Soy el autor principal detrás del conductor .Net de Mongo. Todavía no existe un asignador de ORM como este. En cambio, funciona en documentos simples que son el equivalente de un diccionario. No sería difícil usar la reflexión para recorrer los campos de un documento y asignarlos a las propiedades de un objeto. He escrito algo simple como eso para los resultados de LDAP en el pasado. No tiene que preocuparse por la inyección de sql con Mongo ya que realmente no hay un lenguaje de consulta que se analice. Todos los conductores hablan con Mongo en su lengua materna. Existe cierto potencial si dinámicamente genera javascript y lo envía a la base de datos, pero la necesidad de eso debería ser rara. Si tiene alguna pregunta sobre el uso del controlador, siéntase libre de publicarlos en el Grupo de Google o enviar un mensaje a través de GitHub.

+0

Hola, he decidido usar mongo en mi proyecto, pero no sé cómo anidar algún objeto en mi documento, digamos que tengo documento de pregunta y quiero tener respuestas, pero no tengo ni idea de cómo hacerlo esto –

+0

Los documentos incrustados son solo atributos en un documento que lo contiene. Aquí hay un trazador de líneas. Ciertamente puede separarlo en múltiples líneas si es necesario. Document doc = new Document(). Append ("embeddedDoc", nuevo documento(). Append ("attr1", "val1")); –

+0

Bien, pero ¿es posible agregar una colección de documentos, digamos que tengo una pregunta y quiero tener una colección de respuestas para ella, cuando intenté hacer esto tuve una excepción porque las respuestas clave ya existen –

1

MongoDB no utiliza cadenas mágicas, pero utiliza documentos de consulta para representar consultas. También hay un open source C# driver disponible. No estoy seguro de los detalles del controlador C#, pero debería ser relativamente fácil agregar una capa de validación si no existe uno. Hay proyectos similares sobre los controladores en Python y Ruby, por ejemplo.

+0

Sí, pero dígame por favor cómo guardar y recuperar mi objeto de dominio de forma segura. –

+0

no estoy seguro exactamente de lo que está buscando cuando dice "tipo de seguridad". Creo que lo mejor que puedes hacer es utilizar una capa de acceso a la base de datos que maneje la validación de los datos que estás guardando y salir de MongoDB. – mdirolf

1

Puede conectarse a archivos de texto usando ADO.NET y leerlos/escribirlos usando la sintaxis SQL y Comandos emitidos a través de ADO.NET. There's an example in this article. Sus datos se almacenarán en formato legible para las personas en formato de registro delimitado por comas o tabuladores. Por supuesto, no será rápido con grandes conjuntos de datos. No estoy seguro de si está tratando de alejarse tanto de las bases de datos SQL como de la sintaxis SQL. Las soluciones de archivos de texto son consultables por SQL.

También puede hacer lo mismo con las hojas de cálculo de Excel tratándolas como fuentes de datos SQL (aunque no lo sean) a través de acceso ADO.NET.

1

No estoy seguro si es lo que usted está buscando, pero usted podría intentar http://www.db4o.com/ nunca he utilizado yo mismo pero puede ayudarle a

1

Esto no existía en el momento en que se realizó esta pregunta ... pero ahora está Raven DB, una base de datos de documentos escrita en C# por Ayende Rahien.

Cuestiones relacionadas