MVC4 で EF を使用する 2 つのデータベースがあります。私は利用するためにSO全体を検索しました。アラートのリストを部分ビューに戻す必要があります。ただし、アラートは、特定の識別子を持つ特定のユーザー名でフィルタリングする必要があります。ビューは強く型付けされているので、そのままにしておきたいと思います。
リストに戻るLINQクエリがあり、それは特定のIDに関連付けられたユーザー名のリストです。2 番目の case ステートメントで、2 つのテーブル ルックアップが必要な場所を確認できます。ビューモデル クラスを使用せずにこれを実行したいと考えています。
コードは次のとおりです。
    public PartialViewResult DashboardAlerts()
    {
        Database.SetInitializer<AlertsContext>(null);
        AlertsContext db = new AlertsContext();
        Database.SetInitializer<MemberUsersContext>(null);
        MemberUsersContext mdb = new MemberUsersContext();
        var members = new List<MemberUsers>(mdb.MemberUsers);
        var alerts = new List<Alerts>(db.Alerts);
        var query = from x in alerts
                    join y in members
                    on x.username equals y.username
                    where y.clubID == (int)Session["ClubID"]
                    select new { username = y.username};
        var list = query.ToList();
        switch (Session["RoleName"].ToString())
        {
            case "GMC Admin": return PartialView(db.Alerts.ToList());
            case "Club Admin": return //return db.Alerts.ToList() that has only usernames from query.ToList();
            default: return PartialView(db.Alerts.Where(x => x.username == User.Identity.Name).ToList());
        }
    }
結論: クエリ リストのユーザー名プロパティの値のみを使用して db.Alerts を相互参照したいと考えています。