嗨,大家好,
我需要使用实体框架计算数据库中的行数。我正在使用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)'方法,而这个方法不行 被翻译成商店表达。
表示记录 - 数组不为空。它是从表单中发布的字符串。
答案 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)