首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于多个数据库提供程序的一个实体框架模型

用于多个数据库提供程序的一个实体框架模型
EN

Stack Overflow用户
提问于 2014-01-25 05:27:07
回答 1查看 4.2K关注 0票数 6

我曾经使用实体框架为数据库生成过模型。问题是实体框架为特定的提供者(SQL Server、Oracle等)生成模型。如何生成一个可以与许多提供者一起工作的模型。

我考虑过使用DbProviderFactory类手工创建自己的数据访问层。但是从头开始构建模型涉及到很多工作,这就是为什么我想知道是否可以生成一个实体框架模型,它可以与多个提供者一起工作?!

EN

回答 1

Stack Overflow用户

发布于 2018-12-04 08:52:14

是的,您可以使用一个DbContext并针对多个数据库提供程序!

我如何生成一个可以与许多提供者一起工作的模型。

实体框架将为您生成特定于提供程序的SQL。你必须解决的真正问题是,当你必须自己调用特定于提供程序的调用时,如何告诉EF使用哪个提供程序,即调用特定于提供程序的存储过程等。你还必须处理特定于提供程序的迁移、数据库初始化器和特定于提供程序的集成测试的问题。

您可以使用AdaptiveClientAdaptiveClient.EntityFrameworkCore来解决上述所有挑战。

简而言之,AdaptiveClient允许您在应用程序中为特定于提供程序和特定于传输的组件键入连接字符串。

如果选择了特定的连接字符串(如MSSQL或MySQL),AdaptiveClient将使用Autofac为您解析正确的组件。

您所需要做的就是使用您定义的键注册您的提供程序/传输特定组件。AdaptiveClient提供了一个注册帮助器,使这一过程变得非常简单,因为它提供了特定于实体框架组件的方法。

  • 使用可靠的设计原则构建您的服务层
  • 创建可伸缩且松散耦合的服务层
  • 创建细粒度和特定于testable
  • Create提供程序的服务migrations
  • Create提供程序特定的数据库初始化器
  • 轻松删除并重新创建要集成的数据库

注入提供对整个服务层的访问的单个客户端<代码>H119使用服务清单(外观)从任何其他服务中调用任何服务<代码>H220<代码>F221

下载完整的工作Zamagon Demo。该演示说明了迁移、数据库初始化器、集成测试的丢弃和重新创建场景,以及上面列表中的每个要点。

AdaptiveClient is available as a nuget package

AdaptiveClient.EntityFrameworkCore is also available as a nuget package

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21342779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档