Поддержка кросс-базы данных - PullRequest
1 голос
/ 26 февраля 2012

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

Однако я хочуЧтобы создать поддержку уровня базы данных для нескольких баз данных (Oracle, MS Sql Server) и в то же время поддерживать модель сущностей, такую ​​как LinqToSql и devart.

, если кто-либо имеет какую-либо информацию, может помочь мне, я буду благодарен.Спасибо.

Ответы [ 3 ]

1 голос
/ 04 марта 2012

Я обнаружил, что компонент linqconnect от (devart) делает то, что мне нужно.

1 голос
/ 04 марта 2012

Entity Framework не включает готового поставщика для любой СУБД, кроме SQL Server.Предполагается, что любой сторонний поставщик СУБД, который хочет поддерживать EF, предоставит свою собственную реализацию на основе модели поставщика Microsoft.Oracle фактически выпустила официального поставщика, который является частью ODP.NET.Я бы порекомендовал этот, потому что он бесплатный:

http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html

PS. Поставщики Devart LinqConnect не являются действительно поставщиками Linq to SQL.Они предоставляют классы, которые имитируют структуру и функциональность классов Linq to SQL (DataContext, EntitySet<T> и т. Д.), Но они находятся в другом пространстве имен.Никто, кроме Microsoft, не может реализовать поставщика Linq to SQL, потому что он никогда не раскрывал модель поставщика через открытые типы.

1 голос
/ 26 февраля 2012

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

Вы можете использовать что-то вроде моего шаблона репозитория (читайте об этом здесь: http://blog.staticvoid.co.nz/2011/10/staticvoid-repository-pattern-nuget.html) и реализовать собственный IRepositoryDataSource для Oracle) (вы можете сделать это, используя LINQ to oracle провайдера из codeplex, http://linqtooracle.codeplex.com/) или в качестве альтернативы вы можете написать свой собственный репозиторий с реализациями для sql и oracle.

...