什么是Microsoft.Practices.EnterpriseLibrary.Data

时间:2013-01-19 10:45:18

标签: c# asp.net sql 3-tier three-tier

我想知道Microsoft.Practices.EnterpriseLibrary.Data是什么以及为什么我们使用这个dll。 这个dll有什么好处。

我想在3层架构上创建一个项目,这是sql查询的最佳方式。

天气我使用这个dll或者去寻找简单的sqlcommand和dataadapter。 目前我正在以这种方式工作: 我在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

1 个答案:

答案 0 :(得分:16)

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或Entity Framework或NHibernate就越有用,因为您了解了自生成技术以来的基本原理在ADO .Net。

之上