System.Data.Entity.dll中的异常,但未在用户代码中处理

时间:2013-06-29 18:26:59

标签: asp.net-mvc linq c#-4.0

嗨,大家好,

我需要使用实体框架计算数据库中的行数。我正在使用LINQ方法“Count”。

以下是代码:

QvDb dba = new QvDb();
if (dba.KUser.Count(us => us.FacebookId == values["FacebookId"]) == 0)

正如您所见,values["FacebookId"]是一个post数组变量,dba对象变量是数据库模型构建器。

当我尝试访问该页面时,我遇到了这个例外:

  

发生了'System.NotSupportedException'类型的异常   System.Data.Entity.dll但未在用户代码中处理

     

其他信息:LINQ to Entities无法识别该方法   'System.String get_Item(System.String)'方法,而这个方法不行   被翻译成商店表达。

表示记录 - 数组不为空。它是从表单中发布的字符串。

1 个答案:

答案 0 :(得分:5)

使用LINQ to实体时,数据库必须支持LINQ语句的所有部分。

values["FacebookId"]是一本本地字典。因此无法在远程SQL数据库上执行。

首先将字典中的值拉入本地变量,然后执行LINQ语句。

QvDb dba = new QvDb();
var id = values["FacebookId"];
if (dba.KUser.Count(us => us.FacebookId == id) == 0)
相关问题