gpt4 book ai didi

c# - 多个数据库提供者的一个 Entity Framework 模型

转载 作者:太空狗 更新时间:2023-10-29 21:57:57 25 4
gpt4 key购买 nike

我以前使用 Entity Framework 为数据库生成模型。问题是 Entity Framework 为特定提供者(SQL Server、Oracle 等)生成模型。如何生成可与许多提供商一起使用的模型。

我考虑过使用 DbProviderFactory 类手工制作我自己的数据访问层。但是从头开始构建模型涉及大量工作,这就是为什么我想知道我是否可以生成一个与多个提供商一起工作的 Entity Framework 模型?!!!

最佳答案

是的,您可以使用一个 DbContext 并定位多个数据库提供商!

How can I generate a model that may work with many providers.

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

您可以使用 AdaptiveClientAdaptiveClient.EntityFrameworkCore应对上述所有挑战。

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

选择特定的连接字符串(即MSSQL或MySQL)AdaptiveClient使用AUTOFAC来为您解决正确的组件。

您需要做的就是使用您定义的 key 注册您的提供商/传输特定组件。 AdaptiveClient 提供了一个注册助手,使这个过程变得非常简单,因为它提供了特定于 Entity Framework 组件的方法。

  • 使用 SOLID 设计原则构建您的服务层
  • 创建可扩展且松散耦合的服务层
  • 创建精细且可测试的服务
  • 创建特定于提供商的迁移
  • 创建特定于提供者的数据库初始化器
  • 轻松删除并重新创建您的数据库以进行集成测试
  • 轻松注入(inject)提供对整个服务层的访问权限的单个客户端
  • 使用服务 list (外观)从任何其他服务中调用任何服务

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

AdaptiveClient is available as a nuget package .

AdaptiveClient.EntityFrameworkCore is also available as a nuget package .

关于c# - 多个数据库提供者的一个 Entity Framework 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21342779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com