类型化数据集的缺点是什么

2023-12-29

我来自一个喜欢构建自己的世界,而不是依赖他人构建的库和框架。逃离这个世界后,我发现了在 Visual Studio 中使用类型化数据集等工具的乐趣和轻松。那么除了失去灵活性之外,你还失去了什么?是否存在性能因素(忽略 procs 与动态 sql 的争论)?限制?


到目前为止,类型化数据集是经典 ADO 断开连接记录集领域的升级。我发现它们仍然适合在需要执行某种面向行的排序任务的简单情况下使用,即您仍然希望在行、列、约束等数据库范例的上下文中工作。如果在这种情况下明智地使用,那就没问题。

它们的好处在一些领域会减弱:

  • 我认为这里提出的同步问题肯定是一个问题,特别是如果您已经自定义它们或将它们用作基类。
  • 根据数据集中数据表的数量,它们可能会变得相当多fat。我的意思是,多表数据集通常呈现数据的关系视图。除了内存占用之外,随之而来的是键的定义和潜在的其他约束。同样,如果这正是您所需要的,但如果您需要一次快速遍历数据,那么使用数据读取器的高效循环可能是更好的选择。
  • 由于其复杂的定义和潜在的大小,在远程情况下使用它们也是不明智的。
  • 最后,当您开始意识到需要使用与问题域相关的对象中的数据时,它们的使用更多地成为障碍而不是好处。您经常发现自己将字段移入和移出集合中的行表,并关心表和行的状态。您开始意识到,他们创建 OO 语言是为了更容易地表示现实世界的问题域对象,而使用表、行和列并不真正适合这种思维方式。

一般来说,根据我的经验,我发现复杂的系统(例如许多大型企业系统)最好远离数据集的使用,而更多地转向可靠的领域特定对象模型——如何将数据传入和传出这些对象(例如使用 ORM)完全是另一个话题。然而,在小型项目中,数据前面有一个表单,需要基本维护和一些其他简单的操作,使用数据集范例可以实现巨大的生产力——尤其是与 Visual Studio/.Net 强大的数据绑定功能结合使用时。

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

类型化数据集的缺点是什么 的相关文章

随机推荐

  • 使用flask-uploads上传文件

    我正在尝试使用上传文件烧瓶上传 http pythonhosted org Flask Uploads 扩大 问题是 每次我似乎找到解决方案时 我都会资助另一个问题 而且我觉得文档很神秘 这是代码 from flask ext upload
  • Artillery:如何将 artillery html 报告图表发布到 Azure DevOps CI/CD 管道中?

    我正在处理一个要求 我必须使用 artillery 工具生成负载测试报告并将报告统计信息发布到我们的 Azure DevOps 管道中 Artillery 将报告生成为 html 格式 我想将其显示到 Azure DevOps 管道中 我该
  • 如何计算两个列表的所有交错?

    我想创建一个接受两个列表的函数 不保证列表的长度相等 并返回两个列表之间的所有交错 Input 两个列表的大小不必相等 Output 两个列表之间保留原始列表顺序的所有可能的交错 Example AllInter 1 2 3 4 gt 1
  • Angular2 种子项目中项目目录之外的文件

    我如何包含项目目录 Angular 2 之外的文件 我的文件夹结构是这样的 WebApp angular2 seed Shared business logic files Mobile App 我在网络应用程序项目的文件中给出了正确的文件
  • 为什么SmtpClient.SendAsync只能调用一次?

    我正在尝试使用 SmtpClient 在 NET 中编写通知服务 出于完全合法的非垃圾邮件目的 最初我只是循环遍历每条消息并发送它 但是这很慢 我想提高速度 因此 我改用 SendAsync 但现在在第二次调用时出现以下错误 An asyn
  • 计算 itertools.product() 的第 n 个结果

    我正在尝试计算 itertools product 的第 n 个结果 test list product 01 repeat 3 print test desired output test 0 print desired output 所
  • 如何使用 id 删除嵌套的 JSON 对象

    在我的应用程序中 我创建了一个基于 JSON 的 JavaScript 对象 类似于以下内容 name root id 112 children name child one id 231 children name grand child
  • Python 在不需要时更改文件权限

    知道为什么下面的 Python 脚本在运行后将文件夹权限更改为只读吗 它运行一次并删除文件夹中的所有文件 但当它再次运行时 会出现 Windows 错误 5 访问被拒绝 因为脚本将文件夹的权限更改为只读 我看不出它的作用或如何避免它 谢谢
  • 如何获得 Go 中的终端大小?

    如何在 Go 中获取终端大小 在 C 语言中 它看起来像这样 struct ttysize ts ioctl 0 TIOCGWINSZ ts 但是如何在 Go 中访问 TIOCGWINSZ cgo编译器目前无法处理c函数中的变量参数和c头文
  • PyTorch Cuda 与 anaconda 不可用

    我正在使用 anaconda 来调节我的环境 对于一个项目 我必须使用 GPU 进行网络训练 我在我的项目中使用 pytorch 并且正在尝试让 CUDA 工作 我安装了cudatoolkit numba cudnn 不过 当我尝试这个命令
  • 如何使用 write() 或 fwrite() 将数据写入终端(stdout)?

    我正在尝试加快我的 C 程序的速度 以便更快地输出数据 目前我正在使用printf 向外界提供一些数据 它是连续的数据流 因此我无法使用 return data 我该如何使用write or fwrite 将数据提供给console而不是文
  • Laravel Eloquent - 随时加密/解密数据

    我可以用Crypt加密 解密我的数据 我想加密数据库中的一些信息 例如姓名 电子邮件 电话号码等 假设我希望对所有内容进行加密 我希望能够在后台自行执行此操作 我可以通过覆盖create and save功能 For instance th
  • 如何使用 Ruby 下载图片?

    我想使用 Ruby 下载这张图片 我怎么做 http farm1 static flickr com 92 218926700 ecedc5fef7 o jpg 我使用的是 Mac 操作系统 require open uri open yo
  • 不想在绘图轴上使用科学记数法

    我经常在 R 中使用以下函数绘制各种散点图plot命令 有时两个 有时仅其中一个绘图轴都用科学记数法标记 我不明白 R 何时决定切换到科学记数法 令人惊讶的是 它经常打印出任何理智的人在标记绘图时都不会用科学计数法书写的数字 例如它将 5
  • 如何共享我的 C/C++ 项目并隐藏部分源代码?

    我想将我的用 C C Linux 环境 gcc g 编译器 编写的项目作为共享库 静态库共享 而不实际共享源代码 这样其他用户就可以在不真正了解我的源代码的情况下使用我的项目 谁能告诉我如何将其共享为 so a 格式 假设 我的项目如下所示
  • 是否可以有一个远程sqlite数据库

    可以在服务器上远程存储 sqlite 数据库吗 我正在构建一个 iphone 应用程序 所有教程似乎都将 sqlite 数据库存储在 iphone 本身上 这是不可取的 因为您很快就会遇到并发问题 在这种情况下 我会使用传统的 RDMS 例
  • 有条件地从两个类中的任何一个继承[重复]

    这个问题在这里已经有答案了 可能的重复 在编译时动态生成结构 https stackoverflow com questions 11376149 generating structures dynamically at compile t
  • “记住我”身份验证功能是否总是意味着“不安全”网站?

    我正在考虑实施经典 记住我 复选框在我的网络应用程序上 允许经过身份验证的用户在返回访问我的网站后被 记住 Gmail http www gmail com Facebook http www facebook com其他人也有这种功能 但
  • Eigen Matrix 与 Numpy Array 乘法性能

    I read 在这个问题中 https stackoverflow com questions 10366054 c performance in eigen librar that eigen具有非常好的性能 但是 我尝试比较eigen
  • 类型化数据集的缺点是什么

    我来自一个喜欢构建自己的世界 而不是依赖他人构建的库和框架 逃离这个世界后 我发现了在 Visual Studio 中使用类型化数据集等工具的乐趣和轻松 那么除了失去灵活性之外 你还失去了什么 是否存在性能因素 忽略 procs 与动态 s