【问题标题】:LINQ to Entities does not recognize the method 'Int32 ToInt32(Int32)' method, and this method cannot be translated into a store expressionLINQ to Entities 无法识别方法 'Int32 ToInt32(Int32)' 方法,并且此方法无法转换为存储表达式
【发布时间】:2012-05-07 11:27:59
【问题描述】:
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)' 方法,并且此方法无法转换为商店表达式。

【问题讨论】:

  • 您是否尝试使用您的 Convert.ToInt32 转换整数??

标签: linq-to-sql


【解决方案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)
    {
    }
}

【讨论】:

  • LINQ to Entities 无法识别方法 'FriendsList ElementAt[FriendsList](System.Collections.Generic.IEnumerable`1[FR_Network.FR_Network+FriendsList], Int32)' 方法,并且此方法不能翻译成商店表达式。
  • 感谢我得到了解决方案,取一个变量并在语句之前分配 list.element(i).userid 的值。
猜你喜欢
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
相关资源
最近更新 更多