LINQ to SQL在不同版本的SQL Server之间的兼容性

问题描述

| 我通过连接到sql Server 2005数据库创建了DataClasses。如果我的应用程序要连接到sql Server 2000数据库,是否需要重新编译? sql Server 2000不支持ROW_NUMBER()函数。我正在使用LINQ to sql的Skip()和Take()方法来翻阅我的记录。即使已将LINQ to sql编译为连接到较新版本的sql Server,它仍可以正确生成正确的SQL查询吗?     

解决方法

在运行时基于服务器选择SQL。 IDE生成的代码(C#等)不是特定于版本的。不,您无需执行任何操作即可重新定位其他数据库版本。 但是,如果尝试使用SQL2000,某些代码将失败。没有合理的数据库支持,根本不可能(至少是方便或理智地)进行一些跳过/接听/等操作。它可以做一些事情...它不能做一些事情。您将需要对该平台的应用程序进行集成测试。