3

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

我们正在更新我们的应用程序以处理 MongoDb。我们开始对会员提供者进行更改。

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

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

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

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

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

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

谢谢,纳雷什

4

1 回答 1

0

我认为您走在正确的轨道上,将您的应用程序分成多个层,然后您的存储库或 DAL 层可以是您需要的任何东西(SQL、Web 服务等),然后使用工厂或 DI 来获取您需要的数据.

这是关于这样做的数据库帖子

于 2013-03-19T15:05:23.700 回答