2009-08-17 42 views
0

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

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

+3

为什么不使用实体框架?这是一个从多数据库支持的数据库生成的类结构(http://msdn.microsoft.com/en-us/data/dd363565.aspx) – HuBeZa 2009-08-17 11:33:20

+0

似乎仍然没有解决方案来连接甲骨文来EF来自微软阵营和所有其他解决方案是商业或测试,你不能在生产环境中使用 – 2009-08-24 07:54:01

回答

0

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

我喜欢使用Strongly Typed Datasets,下次再做。 我认为在C#和VB.NET代码中强列类型的列是一个很大的帮助。 但请注意,您可能需要为填充功能制作自己的功能,有时也需要制作自己的功能。 (基于where子句) 对于Oracle,我使用了System.Data.OracleClient(我发现这个对我来说最合适)

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

+2

强类型数据集很好,但生成的TableAdapter是可怕的...有没有简单的方法来改变连接字符串,除了改变app.config,所以它不能由程序本身完成。它们总是为特定的DBMS生成,而不是使用通用代码:( – 2009-08-17 11:45:07

0

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

然而,这是一个根本不同的方法。它内部使用动态SQL(不基于任何用户输入),这使得一些人感到紧张。

0

我的首选是使用CSLA等体系结构实现业务逻辑的类。数据访问逻辑可以包含在相同的类中,或者分解为单独的类或数据集。将数据集用于业务逻辑并将其直接绑定到UI是相当有限的。