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

Dan*_*kov 3 linq asp.net-mvc c#-4.0

嗨,大家好,

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

这是代码:

QvDb dba = new QvDb();
if (dba.KUser.Count(us => us.FacebookId == values["FacebookId"]) == 0)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,values["FacebookId"]它是一个post数组变量,而dba对象变量则是数据库模型构建器.

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

System.Data.Entity.dll中出现"System.NotSupportedException"类型的异常,但未在用户代码中处理

附加信息:LINQ to Entities无法识别方法'System.String get_Item(System.String)'方法,并且此方法无法转换为存储表达式.

对于记录 - 数组不为null.它是从表单发布的字符串.

Mat*_*ser 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)
Run Code Online (Sandbox Code Playgroud)