gpt4 book ai didi

c# - 具有多个数据源的数据层架构

转载 作者:行者123 更新时间:2023-11-30 15:31:02 25 4
gpt4 key购买 nike

我正在尝试创建一个允许您切换多个数据源的系统,例如从 Entity Framework 切换到 Dapper。我试图找到最好的方法来做到这一点。

目前我有针对不同数据层的不同项目,例如Data.EF 用于 Entity Framework ,Data.Dapper 用于 Dapper。我使用了数据库方法,但是当它创建模型时,生成的信息耦合在一起并且不容易重构,例如模型分离。

我有一个名为 models 的项目,它包含域和 View 模型,我正在考虑创建 Data.Core 并遵循存储库模式。但是,这样做会增加一个额外的层,所以我会有演示文稿/业务/存储库/数据。

我想知道这种方法的最佳结构。我还应该采用代码优先的方法来创建我的数据库吗?这有助于分离关注点并改进抽象。这是一个相当大的应用程序,因此正确的结构至关重要。

最佳答案

我建议通过实体的存储库接口(interface)将数据接口(interface)分解到模型或基础设施项目。 (我认为后者是您创建 Data.Core 项目的基本原理。)

然后每个数据源将实现完全相同的一组接口(interface),您可以轻松地在它们之间切换,甚至可以动态地使用依赖注入(inject)。

例如,使用存储库:

Model
\_ Entities
Entity
\_ Repositories
IEntityRepository

Data.EF
EntityRepository : Model.IEntityRepository

Data.Dapper
EntityRepository : Model.IEntityRepository

然后在您的业务中您甚至不需要引用 Data.EFData.Dapper:您可以使用 IEntityRepository 和动态注入(inject)该引用。

关于c# - 具有多个数据源的数据层架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21253962/

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