0

私は ASP.NET MVC の経験が初めてで、いくつかの記事を読んだ後、MVC で新しいプロジェクトを試すことにしました。

そして、ADO.net エンティティ データ モデルを使用して、Create/Delete/Details/Edit/Index を作成しました。それは正常に動作します。一部のフィールドは、従業員情報用の HR データベースなどの別のデータベースから取得されているため、ユーザー インターフェイスを改善する予定です。

たとえば、フォームで従業員の名前を選択するには、DropDownList を使用する必要があり、そのデータは上記で述べたように別のデータベース HR から取得されます。1 つのモデルで差分データベースにアクセスする方法がわかりません。ここで、ASP.net MVC の 1 つの edmx で複数のデータベースを解決する方法を尋ねました。

ただし、他のデータベース用にもう 1 つモデルを作成して、Linq に参加しようとしました。

//
    // GET: /ARS/

    public ActionResult Index()
    {
        var employee = new List<EMPLOYEE>(chr.EMPLOYEEs);
        var reqform = new List<RequestForm>(ars.RequestForms.Include(r => r.Genre));

        var requestforms = from r in reqform
                           join e in employee on r.PrjDeptMgr equals e.EmployeeID
                           select new
                             {
                                 r.FormID,
                                 r.GenreID,
                                 r.JobNo,
                                 r.Description,
                                 r.StartDate,
                                 r.EndDate,
                                 r.PrjDeptMgr,
                                 r.IsAgreed,
                                 r.Genre
                             };

        //var requestforms = ars.RequestForms.Include(r => r.Genre);
        return View(requestforms.ToList());
    }

しかし、私はこのエラーが発生しました

ディクショナリに渡されるモデル アイテムの型は 'System.Collections.Generic.List 1[<>f__AnonymousType29[System.Int32,System.Int32,System.String,System.String,System.DateTime,System.DateTime,System.String,System. Boolean,Access_Request_System.Models.Genre]]' ですが、このディクショナリには 'System.Collections.Generic.IEnumerable'1[Access_Request_System.Models.RequestForm]' 型のモデル アイテムが必要です。

この場合は本当にわかりません...お願いします!

4

1 に答える 1

1

ビュー ファイルには が必要ですIEnumerable<RequestForm>が、渡すタイプが必要なタイプと一致しません (それは ですanonymous)。

次の変更を試してください。

List<RequestForm> requestforms = (from r in reqform
                       join e in employee on r.PrjDeptMgr equals e.EmployeeID
                       select new RequestForm
                         {
                             FormID = r.FormID,
                             Genre = r.GenreID,
                             JobNo = r.JobNo,
                             Description = r.Description,
                             StartDate = r.StartDate,
                             EndDate = r.EndDate,
                             PrjDeptMgr = r.PrjDeptMgr,
                             IsAgreed = r.IsAgreed,
                             Genre = r.Genre
                         }).ToList();

return View(requestForms);
于 2013-05-27T02:17:00.413 に答える