什么是 Microsoft.Practices.EnterpriseLibrary.Data

2024-01-23

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

这个dll有什么好处呢?

我想在 3 层架构上创建一个项目,并且很好奇执行 sql 查询的最佳方法是什么。

我是否应该使用这个 dll 还是选择简单的SqlCommand and 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.


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。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是 Microsoft.Practices.EnterpriseLibrary.Data 的相关文章

随机推荐

  • Angular - 模块没有导出成员“OpaqueToken”错误

    我应该如何解决这个错误 node modules ngrx store src ng2 d ts 1 10 中的错误 错误 TS2305 模块 C Users sandr Desktop wz r kopia node modules an
  • 开发了 strtok 替代品

    我开发了自己的 strtok 版本 只是为了练习指针的使用 任何人都可以看到这有任何限制 或者无论如何我可以改进 void stvstrtok const char source char dest const char token Sea
  • 许多控件的 Keydown 处理程序

    有没有更好的方法为繁忙表单上的许多控件提供按键处理程序 在某些情况下 单独使用表单处理程序是行不通的 Private Sub rText KeyDown ByVal Sender As Object ByVal e As KeyEventA
  • 将 NSInteger 转换为 NSUInteger?

    我正在尝试将 NSInteger 转换为 NSUInteger 我用 google 搜索了它 但没有找到真正的答案 我该怎么做 NSInteger and NSUInteger只是原始整数类型的 typedef if LP64 NS BUI
  • Google 脚本选择 Google 电子表格中的整行

    我想知道我们是否可以使用 Google 脚本在电子表格中选择一行 如下所示 无论如何 首先我尝试使用此功能来处理列 但我收到数据错误 未找到 如果您有一个想法 function testGetFullColumn getFullColumn
  • 为什么使用类而不是函数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我确实知道类的一些优点 例如变量和函数作用域 但除此之外 对我来说 拥有一组函数似乎比拥有许多类的实例和抽象更容易 那么为什么将相似的函数分组在
  • 关于C++中const指针的问题?

    我无法解释以下代码 double d 100 double const d1 30 double const p d Line 1 double const p1 d1 Line 2 在上面的代码中 Line 1没问题 但是Line 2产生
  • JPA 单表层次结构中的 PostgreSQL 标识

    在具有单个表继承层次结构的 Hibernate JPA 环境中使用 PostgreSQL 时 我看到了奇怪的行为 首先是我的环境 PostgreSQL 8 3 春季2 5 6SEC01 Hibernate entitymanager 3 4
  • 具有 json 模式的 Kafka jdbc 接收器连接器无法正常工作

    使用最新的 kafka 和 confluence jdbc 接收器连接器 发送一条非常简单的 Json 消息 schema type struct fields type int optional false field id type s
  • 每 1 分钟定期调用一次 AWS Lambda

    我如何定期调用 AWS Lambda 特别是每 1 分钟一次 当前功能允许 Lambdas 设置为5分钟触发 https stackoverflow com a 27382253 358013 但我正在寻找更短的时间间隔 我想过永远运行 L
  • phpass 返回不同的结果

    我只是将我的项目从本地主机放到我的主机上 并使用相同的 phpass 函数 我收到不同的结果 并且返回的字符串的长度也不同 顺便说一句 一切都在本地主机上运行 所以在线时相同的函数返回 false 我想知道可能是什么问题 结果如下 Inpu
  • 如何在 Javascript/Angular JS 中进行舍入——但删除无关紧要的数字

    我的 Javascript 控制器中有以下语句 scope myList 0 1 0 5 0 6666666 我的 AngularJS 模板包含以下行 div i div 这会产生以下 HTML 输出 div 0 div div 1 div
  • JavaFX 一次运行大量倒计时器?

    所以我可以看到几种不同的方法来完成我需要的事情 并且我已经做了很多谷歌 堆栈溢出搜索 但找不到我真正想要的东西 我需要运行多个 倒计时器 我需要在不同时间同时运行大约 6 个 可能最多 10 个 倒计时器 我的主程序上有一个选项卡窗格 我在
  • 强制分配实内存

    是否可以分配大块实内存 512Mb 1Gb 安装了 4Gb 而不将其丢弃到交换区 我的最终目的是释放系统内存 当可用内存接近 0 时 os x 会出现问题 它不会努力将未使用的内存放入交换区 并且尝试获取内存时一切都会变得非常慢 所以 我决
  • PrimeNg 上下文菜单传递数据问题

    我正在使用 PrimeNg 的上下文菜单 v6 0 1 问题是文档不清楚 我也无法在网上找到有关如何将数据传递给命令函数的信息 例如 我在屏幕上渲染了 10 个对象 并且上下文菜单附加到所有这些对象 现在如果我单击菜单项 我想获取渲染上下文
  • Laravel 分页链接与渲染

    我已经使用 Laravel 5 x 几个月了 我只是想知道使用分页时使用链接和渲染之间有什么区别 我做了一些研究 人们以相同的方式使用这两者 假设我有一个从控制器返回的数组变量 我会将分页切成每个视图 5 个项目 public functi
  • PowerShell 脚本不会作为 Windows 计划任务执行

    我有一个 PowerShell 脚本 可以运行 在 Windows 任务计划程序中 我创建了一个要执行的新任务 C Windows System32 WindowsPowerShell v1 0 powershell exe 将参数作为我的
  • mysql 触发器不工作?

    我正在尝试创建一个触发器来根据另一个表上的插入有条件地插入新行 我似乎无法确定语法 到目前为止 这是我所拥有的 DELIMETER CREATE TRIGGER overPricedCar AFTER INSERT ON cars FOR
  • 无法获取Android广告ID

    我正在尝试获取 Android 广告 Id 但找不到正确的方法 事实上 我什至无法获取广告 ID 提供商 isAdvertisingIdProviderAvailable 始终返回 false 我使用的是带有 8 0 PlayStore 的
  • 什么是 Microsoft.Practices.EnterpriseLibrary.Data

    我想知道什么Microsoft Practices EnterpriseLibrary Data dll是以及为什么我们使用这个组件 这个dll有什么好处呢 我想在 3 层架构上创建一个项目 并且很好奇执行 sql 查询的最佳方法是什么 我