c# - 我应该如何设计我的业务层来根据配置设置处理 Sql Server 和 Mongo DB

标签 c# asp.net-mvc entity-framework design-patterns repository

目前我们在应用程序中使用 Sql Server 和 Entity 框架。我们有自己的基于 Sql Server 的自定义成员资格提供程序。我们使用 EF 作为 ORM。

我们正在更新我们的应用程序以处理 MongoDb。我们开始对 Membership Provider 进行更改。

截至目前,我们的 BL 直接创建实体模型的实例并进行数据库操作。我认为这不是一个好的设计。

我希望我的 BL 不应该根据数据库而改变。它应该创建存储库对象的实例并转发请求(CRUD 操作)。存储库将负责与 DAL 的通信。如果我错了,请纠正我。

我正在考虑创建一个接口(interface),该接口(interface)将由存储库和从 BL 使用的存储库实现。界面将如下所示。

interface IDataRepository
{
   MembershipUser CreateUser(string firstName, stringLastName, string email, string phone); 
}

1).请告诉我更好的方法。

2).如果我的应用程序有不同的存储库,BL 应该如何决定它应该使用哪个存储库。为此使用工厂模式会是个好主意吗?

谢谢, 纳什

最佳答案

关于c# - 我应该如何设计我的业务层来根据配置设置处理 Sql Server 和 Mongo DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15502863/

相关文章:

c# - IShell shell = new ... 和 Shell shell = new 有什么区别

asp.net-mvc - 如何突出显示 MVC 中新添加的条目?

c# - 在没有 Entity Framework 和迁移的 ASP.NET Core MVC 应用程序中使用 ASP.NET Identity

c# - 如何使用 JustMock 模拟 EF 6 异步方法?

c# - ASP.NET MVC : how to make all unspecified URLs direct to one controller

entity-framework - SQLite 和 Entity Framework 6

c# - 内存映射文件被加载到进程的用户模式地址空间或内核地址空间?

c# - 条件样式 : if (0 == resultIndex) vs if (resultIndex ==0)

c# - 下载硬盘中的AssetBundle

asp.net-mvc - 在哪里放置审计或日志记录?