2009-10-21 3 views
5

Я хотел бы использовать какую-то базу данных nosql в своем веб-приложении, написанную в asp.net mvc, но не могу найти ничего полезного. Я посмотрел на MongoDB и CouchDB, но я хотел бы иметь лучшие api (строго типизированные не магические строки) для моих запросов, чем они есть. Что-то вроде этого существует для .NET?База данных на базе данных для .NET

ответ

2

Я принцип автор позади водителя .Net для Монго. В настоящее время для него нет ORM, например, mapper. Вместо этого он работает с простыми документами, которые являются эквивалентом словаря. Трудно было бы использовать отражение для перебора полей в документе и назначения их свойствам на объекте. В прошлом я написал простую вещь для LDAP-результатов. Вам не нужно беспокоиться о SQL-инъекции с Mongo, поскольку на самом деле не существует языка запросов, который анализируется. Все водители разговаривают с Монго на своем родном языке. Существует некоторый потенциал, если вы динамически генерируете javascript и отправляете его в БД, но необходимость в этом должна быть редкостью. Если у вас есть какие-либо вопросы об использовании драйвера, вы можете отправить их в группу Google или отправить сообщение через GitHub.

+0

Привет, я решил использовать mongo в своем проекте, но я не знаю, как вложить какой-либо объект в документ, допустим, у меня есть вопросный документ и вы хотите получить ответы на него, но не знаете, как это сделать это –

+0

Встроенные документы - это всего лишь атрибуты содержащего документа. Вот один лайнер. При необходимости вы можете разделить его на несколько строк. Документ doc = новый Документ(). Добавить ("embeddedDoc", новый документ(). Добавить ("attr1", "val1")); –

+0

Хорошо, но можно ли добавить коллекцию документов, скажем, у меня есть вопрос и хочу иметь набор ответов для нее, когда я попытался сделать это, у меня было исключение, потому что ключевые ответы уже существуют –

1

MongoDB не использует магические строки, но использует документы запроса для представления запросов. Существует также open source C# driver. Я не уверен в специфике драйвера C#, но относительно легко добавить уровень проверки поверх него, если он уже не существует. Например, есть похожие проекты поверх драйверов в Python и Ruby.

+0

Да, но скажите, пожалуйста, как сохранить и вернуть объект моего домена в безопасном типе? –

+0

Я не уверен, что именно вы ищете, когда говорите «безопасный тип». я думаю, что лучшее, что вы могли бы сделать, это использовать уровень доступа к базе данных, который обрабатывает данные, которые вы сохраняете, и выходите из MongoDB. – mdirolf

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.

Смежные вопросы