2010-08-03 71 views
0

我们正在研究一个C#代码背后的ASP.NET Web应用程序。数据库是使用InnoDB的MySQL 5.1。数据访问层使用ADO.NET调用存储过程,然后从结果集中构建各种数据结构(无对象映射)。这工作正常,但它有点冗长。毫不奇怪,我们在设计数据模型的第一版时犯了一些错误,但经验使我们变得更加智能,并决定重构数据模型。我们不必更改数据访问层,但我们也在考虑我们的选择。生产系统DBLinq?

这些日子我们很难忽视ORM工具的普及;我们觉得我们正在落后或者不熟悉它们。不仅如此,而且我们已经设计了一个很好地描述我们数据模型的对象模型。我们会考虑的主要ORM工具是NHibernate,ADO.NET实体框架和LINQ to SQL。我们更喜欢LINQ to SQL,因为我们已经阅读(在S.O.上)它比完整的ORM工具更轻。

我们认为使用ORM工具的一个缺点是学习曲线,但我们已经可以看到使用LINQ如何减少我们必须编写的代码量,这可以为我们节省长期的时间。但是,我们使用的是MySQL,而不是SQL Server。

所以我的问题是,DBLinq工作足够好的生产系统?或者,LINQ to SQL是否足以让我们转向SQL Server 2008?事实上,我宁愿在MySQL上使用SQL Server,但成本是明显的缺点。在BizSpark工作了3年之后,我们将以6千美元的价格出现。或者,我们应该考虑其他ORM工具吗?或者,我们应该忽略炒作而不使用ORM工具,但可能会利用LINQ to DataSet

我搜查了S.O.对于DBLinq的信息,但只发现DBLinq tag 17个问题,所以它似乎并不流行。


编辑

看着虽然dotConnect for MySQL对LINQ的支持,所以这是另一种选择。

任何人都可以谈论驱动程序如何编写LINQ查询吗?

+1

我很好奇你认为DBLinq/LinqToSql在给定所有已知缺点(比如受欢迎程度,如你所述)的情况下对NHibernate有什么优势?在我看来,轻量级并不是很吸引人。此外,这里是关于EF4和MySQL的StackOverflow问题:http://stackoverflow.com/questions/2033177/mysql-with-ef-4-0 – 2010-08-04 10:37:41

+0

+1 Michael。那么我是问这个问题的人,所以我不知道DBLinq对NHibernate有什么优势,但是,我偏向于轻量级。此外,我认为我更倾向于EF4而不是NHibernate,以避免第三方,所以感谢您的链接。 – JohnB 2010-08-04 17:08:13

+1

在您的情况下,即使您现在没有时间获取ORM学习曲线,NHibernate听起来仍然是正确的长期方向。在我看来,所有的ORM都有类似的学习曲线。在短期内,我只是建议你慎重选择,一旦做出决定,很难从ORM中提取项目。 – 2010-08-05 09:47:29

回答

1

检查bl-toolkit。它是免费的,速度非常快,并且有很好的LINQ支持。最新增加的是用于从数据库生成数据模型的T4模板。