Я рассматриваю возможность создания проекта, который предоставит унифицированный API и инструменты (импорт/экспорт и т. д.) для объектных баз данных (например, Caché, Objectivity) для .NET.
Это обеспечит:
- генерация схемы из классов CLR,
- генерация классов C# из заданной схемы OODBM,
- API для удаления, создания и обновления объектов,
- Линк провайдер,
- API для вызова методов объекта базы данных из .NET с использованием объектов .NET (*),
- некоторые из OODBM предоставляют какую-то поддержку SQL, поэтому API для этого,
- поставщики для Caché и Objectivity на первом этапе.
Существует ли какой-либо проект, который реализует что-либо из вышеперечисленного? Можно ли этого добиться с помощью диалектов NHibernate? или OODBM настолько отличаются от RDBM, что для них стоит делать отдельную структуру?
РЕДАКТИРОВАТЬ: (*) Я имею в виду вызов метода БД (хранимая процедура в мире RDBM) из приложения. В мире OODBM, по крайней мере, как я понял, объекты могут иметь методы, как, например, объекты C#. Моя идея состоит в том, что вы пометите метод атрибутом [DbCall] или около того и оставите тело пустым, и когда вы вызовете его из .NET, фреймворк фактически вызовет метод базы данных для данного объекта.
NHibernate был разработан для RDBM, поэтому мне интересно, есть ли какие-либо различия (особенности) в использовании OODBM, которыми нельзя воспользоваться при использовании NHibernate.