委托“System.Func <testproj.pinfo,int,bool>不接受1个参数”</testproj.pinfo,int,bool>

时间:2013-04-28 19:24:31

标签: asp.net asp.net-mvc-3 entity-framework delegates

    MembershipUser userobj = Membership.GetUser();
        Guid currentuserid = (Guid)userobj.ProviderUserKey;
        List<pInfo> pobj = new List<pInfo>();
        pobj = (from pid in db.pInfoes.Where(c => c.UserIdentity == currentuserid)
                orderby pid.pId descending
                select pid).ToList();
        return View(pobj);


   (c => c.UserIdentity == currentuserid) : Error -- Delegate   "System.Func<Testproj.pInfo,int,bool> does not take 1 argument"

我在堆栈溢出方面经历了许多类似的问题,但无法解决它。需要一些关于委派的指导...

3 个答案:

答案 0 :(得分:1)

您的func c => c.UserIdentity == currentuserid的参数与所需的参数System.Func<Testproj.pInfo,int,bool>不符。你也需要一个int参数。我假设您已经期望cTestproj.pInfo,因此您只需要为int添加参数。基金的回报类型为bool。尝试:

.Where((c, i) => c.UserIdentity == currentuserid)

答案 1 :(得分:1)

UserIdentity是否为整数类型,如果不是,则需要UserIdentity.Id=currentuserid

答案 2 :(得分:1)

很抱歉对我的问题有误导性的描述..问题不是委托代码,而是我传递给实体框架查询的参数类型。由于UserIdentity的类型为Unique-identifier,而pInfo在此类型的edmx文件中具有StoreGeneratedPattern =“none”。 我不得不在Edmx文件中将StoreGeneratedPattern更改为Identity Type,并且它有效。 以下帖子和上述一些评论帮助我解决了这个问题。 感谢您的所有关注和宝贵的时间。 http://leedumond.com/blog/using-a-guid-as-an-entitykey-in-entity-framework-4/