是的,无论您使用什么框架连接到数据库、ADO.NET、EF 等,这都是完全可能的。
我将有一个单独的 DAL 项目,其中包含所有 DAL 逻辑和某种 DBFactory 类,该类根据要从中检索数据的位置返回特定的 DBContext。
例子:
public static IEnumerable<User> GetAllUsers()
{
using(var dbContext = DBFactory.GetContext(EDbConnecion.SQLSERVER) )
{
//regular LINQ code here
}
}
DBFactory.GetContext 方法的唯一工作是:
public static DbContext DBFactory.GetContext(EDbConnection connType)
{
switch(connType)
{
case EDbConnecion.SQLSERVER:
return new SqlServerContext("WhatHaveYou");
case EDbConnecion.ORACLE:
return new OracleContext("WhatHaveYou");
//and so on
}
}