Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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# 类型为';的未处理异常;系统。无效卡斯特例外';_C#_Database_Linq_Visual Studio 2015 - Fatal编程技术网

C# 类型为';的未处理异常;系统。无效卡斯特例外';

C# 类型为';的未处理异常;系统。无效卡斯特例外';,c#,database,linq,visual-studio-2015,C#,Database,Linq,Visual Studio 2015,我的C#VS2015应用程序引发此异常: System.InvalidCastException未处理 消息=无法强制转换 类型的对象 'System.Data.Entity.Infrastructure.DbQuery'1[ADONET4LINQtoENTITIES.Customer]' 键入“System.Data.Objects.ObjectQuery”。 Source=ADONET4LINQtoENTITIES 错误发生在定义查询变量的行中: var customers = from c

我的C#VS2015应用程序引发此异常:

System.InvalidCastException未处理

消息=无法强制转换 类型的对象 'System.Data.Entity.Infrastructure.DbQuery'1[ADONET4LINQtoENTITIES.Customer]' 键入“System.Data.Objects.ObjectQuery”。
Source=ADONET4LINQtoENTITIES

错误发生在定义查询变量的行中:

var customers = from c in de.Customers
                where c.Orders.Any(o => o.OrderAmount > 150)
                select c;
 
string query = ((ObjectQuery)customers).ToTraceString();
我的假设是,
ObjectQuery
正在提示异常

我尝试了
stringquery=((DbQuery)customers).ToString()
,它在VS2013中工作,但这导致了相同的异常


为什么VS2015会对这些查询方法抛出异常?

因为
客户
不是
对象查询
您想要的是
对象查询
,所以也要删除投影(选择
选项

改为

var CustomersQuery= from c in de.Customers
                    where c.Orders.Any(o => o.OrderAmount > 150);

string query =  CustomersQuery.ToTraceString();
我通过命名
CustomersQuery
消除了命名词汇的歧义


有关更多信息,请参阅。

错误消息说明了一切:
客户
属于
DbQuery
类型,而不是
DbQuery
ObjectQuery
。在EF工作时和未工作时,您是否使用相同版本的EF@manji说,实现起来很有魅力。我只需要添加:
使用System.Data.Entity.Infrastructure
,并在
查询
定义中将
ToTraceString()
调整为
ToString()
。这不是有效的linq语句。在该表单中,查询的
select
部分是必需的。