База данных магических объектов необходима с привязками .Net - PullRequest
0 голосов
/ 16 августа 2010

Давайте предположим, что я пишу программу, у моей программы есть свои сущности и тому подобное. И поскольку я использую язык OOP .Net (C #, но может быть F # или Iron Python), у моих объектов есть странные признаки OOP, такие как наследование, ссылки на другие объекты и иерархические отношения.

Естественно, я хочу сохранить все это в моей чертовой базе данных, и, очевидно, я не могу, потому что ее реляционные, и пришли от чертовых математиков, которые потратили слишком много времени на изучение теории множеств, черт их побери.

Теперь я могу использовать слой ORM, но это будет немного кошмар, потому что мне придется писать все виды XML-файлов и тому подобное.

Нет. То, что я хочу, это база данных с объектно-ориентированными возможностями! возможно даже объектно-реляционная база данных !

Но! я также хочу, чтобы в моем мире .Net был естественный API и привязки.

Я хочу иметь возможность написать класс Cat и указать мне базу данных для сохранения моего Cat, и я бы это сделал. если бы у него был Linq провайдер, это тоже было бы очень полезно.

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 16 августа 2010

Ну, есть довольно много объектных баз данных с разными разновидностями.Некоторые из них просты в использовании и оптимизированы для встраиваемых сценариев использования, например db4o , perst.net и т. Д.и т.д. .Google это для большего количества таких баз данных.

В любом случае, такая база данных объектов позволяет вам сохранять объекты и пытаться сохранить семантику.Таким образом, они могут хранить массивы, ссылки, наследование и т. Д. Это позволяет очень естественным образом работать с данными.Большинство из них также предоставляют поставщика LINQ.

Я также рекомендую посмотреть базу данных документов, например RavenDB или MongoDB .(Также Google для более альтернатив).Они также имеют очень естественный интерфейс, и вы можете хранить в нем очень сложные графы объектов.Однако они ориентированы на документы.Это означает, что следует хранить и обновлять документы, что на практике означает, что вы сохраняете и обрабатываете кучу объектов вместе и обновляете эти обновления вместе.

2 голосов
/ 16 августа 2010

Ворон БД Я думаю, это то, что вы ищете.Вокруг есть другие базы данных nosql.CouchDB, MongoDB также, но это не нативные реализации .NET.

Кстати, слои ORM больше не являются кошмаромДалеко от этого, вы рассматриваете L2S, EF и Fluent NHibernate?Ни один из них не требует конфигурации XML.У каждого есть свои плюсы и минусы, но все они идеально подходят для использования.

0 голосов
/ 16 августа 2010

Для такого сценария вы можете рассмотреть базу данных документов, такую ​​как Raven: http://ravendb.net/

...