LINQ to SQL - 轻量级O / RM?

时间:2010-12-20 05:11:03

标签: c# performance linq-to-sql design-patterns domain-driven-design

我从一些人那里听说LINQ to SQL适用于轻量级应用程序。但后来我看到LINQ to SQL被用于Stackoverflow,还有一些我知道的其他.com(通过采访他们)。

好的,这是真的吗?对于一个带来数百万的电子商务网站而且你通常只做基本的CRUD,除了偶尔的存储过程更复杂的东西,LINQ to SQL足够完整且性能方面足够好或能够被调整到足以在电子商务网站上愉快地运行?我听说你在使用LINQ to SQL时需要调整数据库方面的性能,以获得更好的方法。

所以这里确实有两个问题:

1)“轻量级”O / RM解决方案的含义/范围/定义:当人们说LINQ to SQL是“轻量级O / RM”时,“轻量级”意味着什么真的吗???如果它是如此轻量级,那为什么我会看到一堆巨大的.com使用它?

是否足以运行主要的.com(显然它看起来像是这样)以及什么决定了“轻量级”的上下文是什么......它是如此通用的陈述。

2)表现:我正在研究自己的.com并研究不同的O / RM。我还没有真正关注实体框架,只是想在这里弄清楚LINQ to SQL的基础知识,并确定它对我来说是否足够高效。我认为问题是你无法调整或控制它生成的SQL ......

1 个答案:

答案 0 :(得分:2)

当人们将LINQ to SQL描述为轻量级时,我认为它们意味着它的功能已经足够好了,但是它有很多东西甚至都没有尝试过。我认为这是一件好事,因为如果你只是愿意做出一些牺牲,那么其他ORM可能试图让你做的额外的东西甚至都不需要。

例如,我认为尝试将所有应用程序数据保存在单个数据库中是最佳做法。如果你想能够做Joins和诸如此类的东西,这就是LINQ to SQL所期望的那种东西。但是,如果您在某些具有官僚作风的环境中工作,您可能无法说服每个人移动遗留数据,或集中在单一的做事方式上。最后,你需要一个更复杂的ORM,你最终可以说是crapper软件。这只是为什么你可能无法根据需要对数据进行整形的一个例子。

所以,是的,如果大的.com愿意或能够以一致的方式做事并遵循最佳实践,那么ORM就没有理由不能如此简单。