Vorrei utilizzare una sorta di database nosql nella mia applicazione Web che è scritta in asp.net mvc, ma non riesce a trovare nulla di utile. Ho dato un'occhiata a MongoDB e CouchDB ma mi piacerebbe avere api migliori (fortemente tipizzate non stringhe magiche) per le mie query di quante ne abbiano. Esiste qualcosa del genere per .NET?Database basato su documenti per .NET
risposta
Sono il principio autore alle spalle del pilota .Net per Mongo. Al momento non esiste ancora un mapper come ORM. Invece funziona su documenti semplici che sono l'equivalente di un dizionario. Non sarebbe difficile usare il reflection per scorrere i campi di un documento e assegnarli alle proprietà su un oggetto. Ho scritto una cosa semplice come quella per i risultati LDAP in passato. Non devi preoccuparti di SQL injection con Mongo perché non esiste un linguaggio di query che venga analizzato. Tutti i piloti parlano con Mongo nella sua lingua madre. Esiste un certo potenziale se si genera dinamicamente javascript e lo si invia al DB, ma la necessità dovrebbe essere per lo più rara. Se hai domande sull'utilizzo dell'autista, sentiti libero di pubblicarle sul Gruppo Google o di inviare un messaggio tramite GitHub.
MongoDB non utilizza stringhe magiche, ma utilizza i documenti di query per rappresentare le query. C'è anche un open source C# driver disponibile. Non sono sicuro delle specifiche del driver C#, ma dovrebbe essere relativamente facile aggiungere un livello di validazione se non ne esiste già uno. Ad esempio, in Python e Ruby ci sono progetti simili sopra ai driver.
Sì, ma dimmi per favore come salvare e recuperare il mio oggetto dominio in modo sicuro? –
Non sono sicuro di quello che stai cercando quando dici "digita sicurezza". Penso che il meglio che puoi fare sia utilizzare un livello di accesso al database che gestisca la convalida dei dati che stai salvando e uscendo da MongoDB. – mdirolf
È possibile connettersi a file di testo utilizzando ADO.NET e leggerli/scriverli utilizzando la sintassi SQL e i comandi emessi tramite ADO.NET. There's an example in this article. I tuoi dati saranno archiviati in formato leggibile da umani in formato record delimitato da virgole o tabulazioni. Ovviamente non sarà veloce con set di dati di grandi dimensioni. Non sono sicuro se stai cercando di scappare dai database SQL e dalla sintassi SQL. Le soluzioni di file di testo sono interrogabili da SQL.
È anche possibile fare lo stesso con fogli di calcolo Excel trattandoli come origini dati SQL (anche se non lo sono) tramite l'accesso ADO.NET.
Non sono sicuro se è quello che state cercando, ma si potrebbe provare http://www.db4o.com/ non ho mai usato io stesso, ma può aiutare a
Questo non esisteva al momento in cui questa domanda è stata posta ... ma ora c'è Raven DB, un database di documenti scritto in C# da Ayende Rahien.
Ciao, ho deciso di usare mongo nel mio progetto, ma non so come annidare qualche oggetto nel mio documento, diciamo che ho un documento di domanda e voglio avere delle risposte, ma non ho idea di come fare questo –
I documenti incorporati sono solo attributi su un documento contenente. Ecco una fodera. Puoi certamente separarlo su più righe se necessario. Documento doc = nuovo Documento(). Append ("embeddedDoc", nuovo Documento(). Append ("attr1", "val1")); –
Ok, ma è possibile aggiungere una raccolta di documenti, diciamo che ho una domanda e voglio avere una raccolta di risposte per essa, quando ho provato a farlo ho avuto un'eccezione perché esistono già risposte chiave –