12

我想知道Microsoft.Practices.EnterpriseLibrary.Data.dll我们使用这个程序集是什么以及为什么使用这个程序集。

这个dll有什么好处?

我想在 3 层架构上创建一个项目,并对执行 sql 查询的最佳方式感到好奇。

我应该使用这个 dll 还是使用简单SqlCommandDataAdapter. 目前我正在以这种方式工作:(DAL文件中的代码:)

public void Insert(long id)
{
    connection.Open();
    SqlCommand dCmd = new SqlCommand("test_procedure", connection);
    dCmd.CommandType = CommandType.StoredProcedure;
    try
    {
        dCmd.Parameters.AddWithValue("@id", id);           
        dCmd.ExecuteNonQuery();
    }
    catch
    {
        throw;
    }
    finally
    {
        dCmd.Dispose();
        connection.Close();
        connection.Dispose();
    }
}

如果我应该更好地使用Microsoft.Practices.EnterpriseLibrary.Data和使用DatabaseFactory.

4

1 回答 1

15

Microsoft.Practices.EnterpriseLibrary.Data 库的主要优点是它可以更轻松地生成与数据库无关的代码。开发人员主要与更通用的 Database vs SqlConnection 和 DbCommand vs SqlCommand 对象进行交互,理论上将底层数据库从 MSSQL 切换到 Oracle 的机制变得更加容易。尽管在我的开发经验中我从未见过这种情况发生。

Microsoft.Practices.EnterpriseLibrary.Data 还指导开发人员将 DbParameter 用于查询参数,从而降低 SQL 注入攻击的风险。

Microsoft.Practices.EnterpriseLibrary.Data 是核心 ADO .Net 结构的更高抽象,使开发人员能够以最少的代码量完成相同的任务。

如果您学习数据访问策略,我建议您继续使用 ADO .Net,您对基础知识的了解越多,Microsoft.Practices.EnterpriseLibrary.Data 或实体框架或 NHibernate 就越有用,因为您了解基础知识,因为这些技术是建立在ADO .Net。

于 2013-01-19T11:39:45.993 回答