我使用EF4和SQL Server 2005开发了我的网站,但是当转移到临时站点时,他们发现他们使用的是SQL Server 2000。
现在我收到此错误,我认为这与SQL Server 2000有关:
Incorrect syntax near '('. 'row_number' is not a recognized function name.
有没有办法解决这个问题?
由于
答案 0 :(得分:4)
EF v4不支持SQL Server 2000.更多详细信息:
答案 1 :(得分:1)
我遇到了完全相同的问题,根据StackOverflow上的评论/回复,我几乎放弃了,并将其轻弹到客户端,将其数据库升级为> 2000版。不幸的是,由于许多其他问题,他们无法做到这一点。我不得不到谷歌搜索解决方案,从某个地方我找到了解决办法。
这就是我所做的。
现在我说这是一个解决方法(不是解决方案)的原因是因为
如果您再次从数据库更新模型并进行开发 机器数据库是> = 2000(这可能是SQL的情况 根据{{3}},MS根本不支持2000连接.XML中的此值将自动更改
此外,此更改后EF生成的查询已经有效 我的情况,但我不能保证所有的查询 由您的应用程序生成的工作没有任何问题
答案 2 :(得分:0)
Row_Number()返回返回的每一行的序号。你在调用Row_number(),还是实体框架?
无论哪种方式,您都可以编写一个重新实现ROW_NUMBER的用户定义函数。 Stackoverflow帖子就在这里: ROW_NUMBER Alternative for SQL Server 2000
从长远来看,不确定这会有什么好处;你可能会发现你解决这个问题只是为了遇到EF在SQL 2000上无法工作的下一个原因。但是,尝试几分钟可能是值得的。