LINQ to Entities无法识别方法'Int32 ToInt32(Int32)'方法,并且此方法无法转换为存储表达式

时间:2012-05-07 11:28:00

标签: linq-to-sql

for (int i = 0; i < list.Count; i++)
{
    var doesrequestExist = cxt.Friends.FirstOrDefault(u => (u.User_Id == incID) &&
         (u.Friend_UserId == (list.ElementAt(i).userid)) && 
         (u.Request_Status == 0 || u.Request_Status == 1));
    if (doesrequestExist != null)
    {
    }

我在“list.ElementAt(i).userid”收到错误 错误: LINQ to Entities无法识别方法'Int32 ToInt32(Int32)'方法,并且此方法无法转换为存储表达式。

编辑:

通过删除上面查询中的convert.toint32获取: LINQ to Entities无法识别方法'FriendsList ElementAt [FriendsList](System.Collections.Generic.IEnumerable`1 [FR_Network.FR_Network + FriendsList],Int32)'方法,并且此方法无法转换为商店表达式。

1 个答案:

答案 0 :(得分:1)

从你的linq中排除Convert.ToInt32(list.ElementAt(i).userid))。

for (int i = 0; i < list.Count; i++)
{
    int friendId = Convert.ToInt32(list.ElementAt(i).userid);
    var doesrequestExist = cxt.Friends.FirstOrDefault(u => (u.User_Id == incID) &&
                                                           (u.Friend_UserId == friendId &&
                                                           (u.Request_Status == 0 || u.Request_Status == 1));

    if (doesrequestExist != null)
    {
    }
}