【问题标题】:Who is better to build Data layer Strongly Typed DataSets or Classes谁更好地构建数据层强类型数据集或类
【发布时间】:2009-08-17 11:18:27
【问题描述】:

我曾经使用类来构建数据层,但是有人建议使用强类型数据集,因为它的开发速度更快。我要构建的数据层应该支持多 DBMS(Oracle、MSSQL、MySQL..)。

如何通过使用强类型数据集或使用类更好地构建它?

【问题讨论】:

  • 为什么不使用实体框架?它是从支持多 DBMS 的数据库生成的类结构 (msdn.microsoft.com/en-us/data/dd363565.aspx)
  • 微软阵营似乎仍然没有将 Oracle 连接到 EF 的解决方案,所有其他解决方案都是商业或测试,您无法在生产环境中使用

标签: c# .net vb.net


【解决方案1】:

我使用强类型数据集制作了几个大型商业应用程序。 (适用于 Oracle 和 MSSQL)

我喜欢使用强类型数据集,下次我会再做一次。 我认为列在 C# 和 VB.NET 代码中的强类型是一个很大的帮助。 但请注意,您可能必须为填充创建自己的函数,有时也为更新创建函数。 (基于 where 子句) 对于 Oracle,我使用了 System.Data.OracleClient(我发现这个最适合我)

请注意,对于 Oracle,所有数字都转换为十进制。 (对于 ID 列不智能) 当您更改 TableAdapter 中的 SQL 字符串时,它将覆盖您从 Decimal 到 Int32 的更改。这可能很烦人,但是当你习惯它时,这不是一个大问题。

【讨论】:

  • 强类型数据集很好,但是生成的TableAdapter很糟糕...除了更改app.config之外,没有简单的方法可以更改连接字符串,因此无法由程序完成本身。而且它们总是为特定的 DBMS 生成,而不是使用通用代码:(
【解决方案2】:

我把它放在数据库表中,这样当业务内容发生变化(表或字段)时,您不必重新编译代码。

然而,这是一种完全不同的方法。它在内部使用动态 SQL(不基于任何用户输入),这让一些人感到紧张。

【讨论】:

    【解决方案3】:

    我的偏好是使用 CSLA 等架构实现业务逻辑类。数据访问逻辑可以包含在相同的类中,也可以分解为单独的类或数据集。将数据集用于您的业务逻辑并将它们直接绑定到 UI 是相当有限的。

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 2011-06-22
      • 1970-01-01
      • 2012-11-23
      • 2011-07-10
      • 2017-03-23
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      相关资源
      最近更新 更多