LINQ to Entities无法识别方法Int32 get_Item(Int32)

时间:2011-03-08 13:22:50

标签: .net linq entity-framework

我是关于实体框架和linq的新手。我的查询就像那样

var query = (from d in db.MYTABLE
             where d.RELID.Equals(myInts[0])
             select d.ID).Distinct();

List<int?> urunidleri = query.ToList();

当我执行此代码时,我收到错误消息“LINQ to Entities无法识别方法Int32 get_Item(Int32)”。我怎样才能解决我的问题?

谢谢...

3 个答案:

答案 0 :(得分:130)

您需要将int存储在变量中,以便EntityFramework不会尝试将整个数组拉入其范围。

var myInt = myInts[0];

var query = (from d in db.MYTABLE
             where d.RELID.Equals(myInt)
             select d.ID).Distinct();

List<int?> urunidleri = query.ToList();

答案 1 :(得分:7)

var firstInt = myInts[0];
var query = (from d in db.MYTABLE
             where d.RELID.Equals(firstInt)
             select d.ID).Distinct();

List<int?> urunidleri = query.ToList();

答案 2 :(得分:-1)

Linq查询最终转换为SQL查询,LINQ不知道如何处理Session["UserName"](获取&#34; UserName&#34;项目)。

解决此问题的一种常用方法就是使用您指定Session["UserName"]的本地变量以及您在Linq查询中使用的局部变量...

string loggedUserName = Session["LogedUsername"].ToString();
var userdetail = dc.faculties.Where(a => a.F_UserName.Equals(loggedUserName)).FirstOrDefault();

参考http://mvc4asp.blogspot.in/