Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq导致Top(1)出现语法错误_C#_.net_Sql_Sql Server_Linq - Fatal编程技术网

C# Linq导致Top(1)出现语法错误

C# Linq导致Top(1)出现语法错误,c#,.net,sql,sql-server,linq,C#,.net,Sql,Sql Server,Linq,我有一个使用linq的EF上下文,它正在不同类型的多个sql服务器上执行。我发现,linq在sql server 2000框上导致语法错误,因为.FirstOrDefault()的linq转换正在转换为使用选择TOP(1)的sql而不是选择TOP 1,括号似乎是导致此语法错误的原因,因为sql server 2000在此上下文中不支持括号 是否可以强制linq使用SELECT TOP 1而不是SELECT TOP(1)?您可以使用ToList()。订购后采用(1)方法。注意,EF似乎不支持SQL

我有一个使用linq的EF上下文,它正在不同类型的多个sql服务器上执行。我发现,linq在sql server 2000框上导致语法错误,因为
.FirstOrDefault()
的linq转换正在转换为使用
选择TOP(1)的sql
而不是
选择TOP 1
,括号似乎是导致此语法错误的原因,因为sql server 2000在此上下文中不支持括号


是否可以强制linq使用
SELECT TOP 1
而不是
SELECT TOP(1)

您可以使用
ToList()。订购后采用(1)
方法。

注意,EF似乎不支持SQL Server 2000请参阅:请参阅另请仅查看注释。去免费的SQL Express是一个选项吗?它不会正确地转换查询,它只会获取所有项目。此外,如果您真的想将
Take
转换为linq to objects,您可以使用
AsEnumerable
而不是
ToList
来避免将整个查询带到一个数据结构中,这样您就可以扔掉它。@J.Steen好吧,它首先被
SchmitzIT
批准,但没有人拒绝,因此,对审查制度的反思仍然很糟糕,但是是的。。。谢谢你提到它;我直到现在才看编辑历史。@Servy,我的缺点是没有深入到足够的深度。。)要完全复制
.FirstOrDefault()
而不将
FirstOrDefault()
传递给查询解析器,需要
.Take(1).AsEnumerable.FirstOrDefault()
,这可能是编辑考虑的一般想法。这一切都是假设
Take(1)
没有同样的问题。@Jonhana好吧,鉴于评论指出数据库提供程序不受EF支持,即使这一个示例可以工作,OP可能仍然应该停止使用它;他不可能总是能够让它发挥作用,并且能够依靠这一事实。