Linq to Entities不支持方法'SingleOrDefault'

use*_*b00 2 linq linq-to-entities linq-to-sql

我在Linq-To-Entity上使用SingleOfDefault阅读其他关于类似问题的帖子,有些建议使用"First()",其他一些建议使用"Extension"方法来实现Single().

此代码抛出异常:

Movie movie  = (from a in movies
                where a.MovieID == '12345'
                  select a).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

如果我使用.ToList()将对象查询转换为List,"SingleOrDefault()"实际上可以正常工作而不会抛出任何错误.

我的问题是:转换为List不好吗?是否会出现更复杂查询的性能问题?它在SQL中被翻译了什么?

Movie  movie  = (from a in movies.ToList()
                where a.MovieID == '12345'
                  select a).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

ntz*_*lis 5

就linq 2实体团队而言,它在提供商级别上不受支持,但是有很多方法可以在这里查看.

但据我所知,它现在支持.NET 4.