问题 什么是Microsoft.Practices.EnterpriseLibrary.Data


我想知道是什么 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


4492
2018-01-19 10:45


起源

我一直在你身边,所以我很同情。我不知道使用SqlCommand和SqlConnection对象有什么问题。企业库之类的东西是更高级别的包装器,它们为您提供了编写代码的方法,这些代码可以配置为使用更广泛的数据库(不仅仅是SQL Server)。但是,如果你只是在学习,我会坚持你所拥有的。 - Aaron Anodide
实体框架是微软目前的ORM de jour - Nicholas Butler
@AaronAnodide:我知道没有什么不对,但我想知道什么是差异,以及'Microsoft.Practices.EnterpriseLibrary.Data'的真正好处是什么? - ankit Gupta


答案:


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。


14
2018-01-19 11:39