为什么我使用Linq to Enities本地开发都正常(sql server 2000),放到服务器上(sql server 2005)就出错?
[已解决] 为什么我使用Linq to Enities本地开发都正常(sql server 2000),放到服务器上(sql server 2005)就出错?
当前页面:http://www.senparc.com/SZD-30
{ 收藏当前页面 }
20
[Web开发 > ASP.NET > ASP.NET MVC]
我本地开发使用的是SQL Server2005(SQL Server 2008测试也可以通过),但是服务器上使用的是SQL Server 2000的数据库,是不是和这个有关呢?
出错信息:
Exception Details: System.Data.SqlClient.SqlException: Line 7: Incorrect syntax near '('.
我看了一下这个括号“(”,其实是在SELECT TOP (1)这里。
这是怎么回事呢?
出错信息:
Exception Details: System.Data.SqlClient.SqlException: Line 7: Incorrect syntax near '('.
我看了一下这个括号“(”,其实是在SELECT TOP (1)这里。
这是怎么回事呢?
最佳答案
这是因为EF会根据不同的数据库版本,生成对应的、有效的SQL语句,有些SQL2005的语法在SQL2000中不被支持。
需要解决这个问题,你需要用文本编辑器或XML编辑器打开Linq to Entities文件(.edmx),注意,不能可视化的图形使用打开!
如果需要在VS中打开,可以对.edmx文件点右键,选择“打开方式”,然后选则一个和XML有关的编辑器就可以了。
打开之后,找到<Schema ...>节点,如:
<Schema Namespace="SenparcModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2005" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
里面有一个属性叫ProviderManifestToken,ProviderManifestToken的值根据生成这个EF文件时的SQL版本而定,如果你开发环境是SQL2005,那么这里就是2005。现在,你只需要将2005改为2000,并且重新编辑,就可以在SQL2000的服务器上正常运行了。
需要解决这个问题,你需要用文本编辑器或XML编辑器打开Linq to Entities文件(.edmx),注意,不能可视化的图形使用打开!
如果需要在VS中打开,可以对.edmx文件点右键,选择“打开方式”,然后选则一个和XML有关的编辑器就可以了。
打开之后,找到<Schema ...>节点,如:
<Schema Namespace="SenparcModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2005" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
里面有一个属性叫ProviderManifestToken,ProviderManifestToken的值根据生成这个EF文件时的SQL版本而定,如果你开发环境是SQL2005,那么这里就是2005。现在,你只需要将2005改为2000,并且重新编辑,就可以在SQL2000的服务器上正常运行了。
回答时间:2010/3/20 12:06:24
| 回答者:zsu
其他参考答案(0)
提交失败!请检查错误!错误信息:
以下信息或许对您有用:
- [已解决] 20 ASP.NET MVC 3.0自定义ViewEngine后出现错误:must d... 2012/8/25 22:02:58
- [已解决] 100 ASP.NET MVC 3 RC2下载地址?有说明文档的话更好!谢谢! 2010/12/12 12:23:00
- [已解决] 20 The type 'System.Data.Objects.DataClasse... 2010/11/25 16:51:58
- [已解决] 20 ASP.NET MVC 3 RC中的Razor语法,在VS中已经实现了智能感知和... 2010/11/14 15:51:22
- [已解决] 60 ASP.NET MVC Razor 在VS2010中智能感知的插件哪里有下载? 2010/11/3 12:53:18