Eveytime 我想我已经掌握了这些东西。
完全错误:
无法创建类型为“Models.staffnames”的常量值。此上下文仅支持原始类型(“例如 Int32、String 和 Guid”)。
版本:.Net 4 EF 4
我认为这与 DU 和 db.UserProfiles 是 Enumerable 有关,但是当我尝试将其推回以使所有 IQueryable 都发生时,整个事情就爆炸了。就目前而言,在构建支持列表时会发生错误。
有趣的是,这个问题似乎只有在我使用 Roles 提供程序时才会出现。在过去,我只是将它转储到 for 循环中。
任何帮助,将不胜感激。
代码:
IEnumerable<MembershipUser> du = Roles.GetUsersInRole("Dealer").Select(u => Membership.GetUser(u)).AsEnumerable();
IQueryable<staffnames> du_up = du.Join(db.UserProfiles.AsEnumerable(), mu => (Guid)mu.ProviderUserKey, up => up.UserID, (mu, up) => new staffnames
{
UserId = (Guid)mu.ProviderUserKey,
FirstName = up.FirstName,
LastName = up.LastName
}).AsQueryable();
List<MemberSupportModel> support = db.Wins_support.Where(s=>s.dealerid == uid && !s.closed).Select(s=> new MemberSupportModel{
aeramanagerack = s.aeramanagerack,
amgrname = du_up.Where(a => a.UserId == s.aeramanger).Select(a=>a.FirstName+" "+a.LastName).FirstOrDefault(),
aeramangerackdate = s.aeramangerackdate,
atypedesc = _atype.Where(wt => wt.Value == s.atypeid).Select(wt => wt.Description).FirstOrDefault(),
wtypedesc = _wtype.Where(wt => wt.Value == s.typeid).Select(wt => wt.Description).FirstOrDefault(),
comment =s.comment,
dateSubmitted = s.dateSubmitted,
vdate =s.vdate,
venuename = s.Venues_Logs.Venue.venueName
}).ToList();