Microsoft.Practices.EnterpriseLibrary.Data是什么? 它是微软提供的一个工具包,用于简化.NET应用程序中与数据访问相关的任务。该工具包提供了一些可重复使用的组件和代码库,可以帮助开发人员更轻松地编写可靠、高效的数据访问代码。

13

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

这个dll有什么好处?

我想创建一个三层架构的项目,并且想知道执行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 进行工作。


我曾经也和你一样,所以我很能理解。使用SqlCommand和SqlConnection对象没有任何问题。像企业库这样的东西是更高级别的包装器,可以让您编写可配置为与更广泛的数据库(不仅仅是SQL Server)一起工作的代码。然而,如果您只是在学习,我建议您坚持使用您已经掌握的内容。 - Aaron Anodide
实体框架是微软当前的ORM de jour。 - Nick Butler
1
@AaronAnodide:我知道没有什么问题,但我想知道'Microsoft.Practices.EnterpriseLibrary.Data'的区别和真正的好处是什么。 - ankit Gupta
1个回答

18

Microsoft.Practices.EnterpriseLibrary.Data库的主要优势在于它使生成与数据库无关的代码更加容易。开发人员主要与通用的Database与SqlConnection、DbCommand和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之上的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接