目前我们在我们的应用程序中使用 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 应该如何决定它应该使用哪个存储库。会为此使用工厂模式好主意吗?
谢谢,纳雷什