我被分配的这个当前项目使用 3.1 版本的级别:
Microsoft.Practices.EnterpriseLibrary.Common;
Microsoft.Practices.EnterpriseLibrary.Data;
当我尝试更多地了解 Ent Lib 的功能时,我遇到了很多关于各种版本(我认为是 3.1、4.0 和 5.0)的文章和文档。
一般来说,较新的版本是否适用于为早期版本的 Ent Lib 编写的应用程序代码?我没有调查我继承的这个应用程序中的所有源代码,但我认为只有数据访问应用程序块的“基础”被使用。这是一段典型的代码:
public override List<Erx.Action> GetAll(bool bIsActive)
{
Database db = null;
DbCommand cmd = null;
List<Erx.Action> lst = null;
IDataReader iRdr = null;
try
{
db = DatabaseFactory.CreateDatabase();
cmd = db.GetStoredProcCommand("Mst_GetAllCorrectiveAction");
db.AddInParameter(cmd, "@CorrectiveActionID", DbType.Int32, -1);
db.AddInParameter(cmd, "@IsActive", DbType.Boolean, bIsActive);
iRdr = db.ExecuteReader(cmd);
lst = new List<Erx.Action>();
while (iRdr.Read())
{
Action objAction = new Action();
objAction.CorrectiveAction = iRdr["CorrectiveAction"].ToString();
objAction.CorrectiveActionID = int.Parse(iRdr["CorrectiveActionID"].ToString());
objAction.IsActive = (bool)iRdr["IsActive"];
lst.Add(objAction);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
db = null;
iRdr.Close();
if (cmd != null)
{
cmd.Dispose(); cmd = null;
}
}
return lst;
}
坦率地说,这似乎并没有提供超出常规 ADO.Net 的功能,但也许较新的版本使事情变得更简单(我听说过一些关于 Unity 的非常好的东西)。