エンティティ フレーム ワーク vs2010 に取り組む
私のlinqクエリを実行した後、レコードのリストを取得し、このレコードをセッションに入れたい.今セッションから私のレコードリストを取り戻したい、何をすべきかセッションからレコードを取り戻す方法
Linq クエリ
public IEnumerable GetSearchUserGroupPermissionData(int userID = 0)
{
var query = from p in this.Context.CmnPermissionGroupUsers
join q in this.Context.CmnPermissionGroups on p.PermissionGroupID equals q.PermissionGroupID
join r in this.Context.CmnPermissionGroupDocs on p.PermissionGroupID equals r.PermissionGroupID
join s in this.Context.CmnUserInfoes on p.UserID equals s.UserID
join t in this.Context.CmnDocLists on r.DocListID equals t.DocListID
//join u in this.Context.CmnModuleFormCompanies on t.ModuleID equals u.ModuleID
//join v in this.Context.CmnModuleLists on u.ModuleID equals v.ModuleID
//join w in this.Context.CmnFormLists on u.FormID equals w.FormID
where p.IsDeleted == false
select new
{
RecordID = p.PermissionGroupUserRecordID,
s.UserID,
s.UserFirstName,
q.PermissionGroupName,
p.EffectiveDate,
p.StatusID,
t.DocListID,
t.DocName,
t.ModuleID,
// v.ModuleName,
// u.FormID,
// t.FormName,
// w.FormName,
t.ParentID,
t.Sequence,
t.IsApprovalRequired,
t.CompanyCategoryID,
t.DocTypeID
//p.CreateBy,
//p.CreateOn,
//p.CreatePc,
//p.UpdateBy,
//p.UpdateOn,
//p.UpdatePc,
//p.IsDeleted,
//p.DeleteBy,
//p.DeleteOn,
//p.DeletePc,
//p.Transfer
};
return query.WhereIf(userID != 0, w => w.UserID == userID).ToList();
}
結果をセッションに入れる
Session["UserPermission"] = new PermissionGroupUserController().GetSearchUserGroupPermissionData(objEntity.UserID);
ここで、session.below foreach 構文領域からレコード セットを取得したいのですが、アイテムには各行にすべてのプロパティと値が含まれていますが、次のように変数に割り当てることはできません。AnonymousType 変数の値を変数に割り当てることができないのはなぜですか。
var o = Session["UserPermission"] as IEnumerable; //キャスト foreach を使用 (var area in o) { //int a = area.UserID; }
注:上記の構文はどのようにエラーを起こしますか
メッセージ:「オブジェクト」には「GetEnumerator」のパブリック定義が含まれていないため、foreach ステートメントは「オブジェクト」型の変数を操作できません
ご不明な点がございましたら、お尋ねください。