0

我从一些人那里听说,LINQ to SQL对于轻量级应用程序是有好处的。但是后来我看到了用于Stackoverflow的LINQ to SQL,以及我认识的其他一些.com(通过与他们的访谈)。LINQ to SQL - 轻量级O/RM?

好吧,这是真的吗?对于一个拥有数百万电子商务网站的用户而言,你通常只在大部分时间做基本的CRUD,除了偶尔存储的proc用于更复杂的事情之外,LINQ to SQL足够完整,性能足够好或能够被调整到足以在电子商务网站上愉快地运行?我听说你只需要调整数据库端的性能,当使用LINQ to SQL来获得更好的方法时。

所以这里有真正的2个问题: “轻量级” O/RM解决方案

1)含义/范围/定义:这到底是 “轻量级” 的意思,当人们说的LINQ to SQL是一个“轻量级O/RM”,这是真的吗?如果这是如此轻量级的话,为什么我会看到一大堆使用它的.com?

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

2)性能:我正在开发自己的.com并研究不同的O/RM。我并没有真正关注实体框架(还),只是想弄清楚LINQ to SQL的基础知识,并确定它是否对我有效。我认为这个问题是你不能调整或控制它产生的SQL ...

+0

为什么'巨大的.com'不使用'轻量级'? – 2010-12-20 05:18:30

+2

@CoffeeAddict:在这种情况下轻量级意味着功能差。与Entity Framework,NHibernate和许多其他.NET ORM相比,LinqToSql功能很差。使用LinqToSql最大的风险之一是最终可能会超过它,而在初始承诺之后切换ORM是很昂贵的。 – 2010-12-20 10:52:46

+0

谢谢迈克尔。我认为这就是它的意思。对于.com来说,我并不认为它已经超越了。我的意思是我已经为几个.com工作过,而且大多数时候我们没有任何事情比其他大多数简单的CRUD更加疯狂。我只是担心LINQ性能没有的调整能力。 – PositiveGuy 2010-12-22 02:42:01

回答

2

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

例如,我认为这是尝试将所有应用程序数据保留在单个数据库中的最佳做法。这是LINQ to SQL期望的类型,如果你想能够做连接和什么。但是,如果您在某些具有官僚作风的环境中工作,您可能无法说服每个人移动传统数据,或集中于单一的做事方式。最后你需要一个更复杂的ORM,并且最终你会得到可以说是crapper的软件。这只是一个例子,说明为什么你可能无法根据需要设置这些数据。

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

+0

很酷...很有意义。 – PositiveGuy 2010-12-20 05:27:23

+0

NHibernate可能比我真正需要的.com更加复杂,开箱即用。(我试图通过看看我的假设是否正确,通过看看这个东西能做什么......这是很多)。我所做的只是简单的CRUD,在SQL调用方面没有什么特别复杂的......也许偶尔的proc不仅仅是一个CRUD调用,而是一切。 – PositiveGuy 2010-12-20 05:28:31

+0

我说给LINQ to SQL一试。我认为你会发现它做到了你需要的东西,并且真的很高兴与你合作。在我使用过的所有ORM中,它肯定是我的最爱之一。如果你需要使用存储过程,它意味着很容易将这些映射到方法调用并将输出映射到对象。 – 2010-12-20 05:34:43