什么是“Linq to SQL”?

时间:2009-08-22 11:08:07

标签: sql linq entity-framework

我和同事讨论过“Linq to SQL”。我仍然是.NET的新手,所以他认为我需要了解更多。 (仍然,30年的一般编程经验应该算上我的优势,对吗?)我读过一些书籍,对于一个新项目,我决定使用ADO.NET实体数据模型。我的同事不同意,因为他“知道”实体有很多问题。它导致数据库服务器出现内存泄漏,微软无论如何都会停止它。他告诉我应该使用数据模块。只需将.dbml添加到我的项目中,然后使用Link。

他有5年的.NET经验,比我的经验长4年。

我停了下来所以我不会称他为白痴或白痴或其他什么因为在我看来他认为“链接到SQL”==“实体数据模型”......

然而,我开始有一些小疑虑。我认为Linq to SQL基于.dbml文件,因此基于数据模型。我听说Linq to SQL确实存在一些技术问题,很快就会被实体模型取代。如果我的同事将这两者混为一谈,那么他就是一个彻头彻尾的白痴。但由于他有5年的经验,而且我怀疑我的雇员甚至会雇用蠢货,所以我开始怀疑。

那么,究竟是什么是“Linq to SQL”?

2 个答案:

答案 0 :(得分:19)

LINQ to SQL和实体框架当然不是一回事。

它们基本上是不同的ORM,既来自Microsoft,又兼作LINQ提供者。 LINQ to SQL是在.NET 3.5中引入的,实体框架是在.NET 3.5 SP1中引入的。

确实,微软正在优先采用实体框架而不是LINQ to SQL,尽管社区中的许多人都在敦促他们改进LINQ to SQL - 这是一个比EF更简单的框架。作为回应,微软已经表示,当只需要简单的型号时,它会尝试使EF更容易使用。

LINQ to SQL仅适用于特定数据库 - 主要是SQL Server和SQL Server CE。实体框架(至少在理论上)与数据库无关,因此数据库供应商可以插入自己的提供者。

答案 1 :(得分:2)

如果你的朋友建议LINQ to Entities消失,他就会落后:

LINQ to SQL将继续受到支持,但未得到进一步扩展。 LINQ to Entities将继续存在,是Microsoft首选的.NET数据访问框架。