毎回、私はこのようなものを理解していると思います。
完全なエラー:
タイプ'Models.staffnames'の定数値を作成できません。このコンテキストでは、プリミティブ型('Int32、String、Guid'など)のみがサポートされます。
バージョン:.Net 4 EF 4
DUとdb.UserProfilesが列挙可能であることと関係があると思いますが、すべてをIQueryableにするためにプッシュバックしようとすると、すべてが失敗します。現在のところ、サポートリストを作成するときにエラーが発生します。
この問題が発生しているように見えるのは、ロールプロバイダーを使用しているときだけであることに注意してください。これまで、私はそれを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();