0

「@ foreach(モデルのvar item)」に関する私の見解では、「EntityCommandExecutionException was unhandled by user code」というこのエラーを回避できないようです。だから私はゼロから始めて、新しいプロジェクト - > ASP.NET MVC 3 Web アプリケーションを作成しました。この後、ADO.NET と LINQ を利用してデータベースにアクセスしようとしていたので、「Case.cs」のモデル クラスを追加しました。

Case.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace CustomerService.Models
{
    public class Case
    {
        public int ID { get; set; }
        public string Creator { get; set; }
        public System.DateTime CreatedDate { get; set; }
        public string CaseLead { get; set; }
        public string CaseType { get; set; }
        public string CaseSubType1 { get; set; }
        public string CaseSubType2 { get; set; }
        public string CaseStatus { get; set; }
        public string CaseTitle { get; set; }
        public string CaseDescription { get; set; }
        public string CaseContact { get; set; }
        public string CustomerID { get; set; }
        public string LocationID { get; set; }
        public string SystemID { get; set; }
    }
}

次に、DbContext を「CSdb.cs」として追加しました。

CSdb.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace CustomerService.Models
{
    public class CSdb : DbContext
    {
        public DbSet<Case> Cases { get; set; }
    }
}

次に、「CaseController.cs」という名前のコントローラーを追加しました

CaseController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using CustomerService.Models;

namespace CustomerService.Controllers
{
    public class CaseController : Controller
    {
        //
        // GET: /Case/

        CSdb db = new CSdb();

        public ActionResult Index()
        {
            var model = db.Cases;

            return View(model);
        }

    }
}

最後に、"Index.cshtml" という名前の CaseController.cs のインデックス ビューを追加しました。

インデックス.cshtml

@model IEnumerable<CustomerService.Models.Case>

    @{
        ViewBag.Title = "Index";
    }

    <h2>Index</h2>

    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <table>
        <tr>
            <th>
                Creator
            </th>
            <th>
                CreatedDate
            </th>
            <th>
                CaseLead
            </th>
            <th>
                CaseType
            </th>
            <th>
                CaseSubType1
            </th>
            <th>
                CaseSubType2
            </th>
            <th>
                CaseStatus
            </th>
            <th>
                CaseTitle
            </th>
            <th>
                CaseDescription
            </th>
            <th>
                CaseContact
            </th>
            <th>
                CustomerID
            </th>
            <th>
                LocationID
            </th>
            <th>
                SystemID
            </th>
            <th></th>
        </tr>

    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Creator)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CreatedDate)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CaseLead)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CaseType)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CaseSubType1)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CaseSubType2)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CaseStatus)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CaseTitle)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CaseDescription)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CaseContact)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CustomerID)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.LocationID)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.SystemID)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
                @Html.ActionLink("Details", "Details", new { id=item.ID }) |
                @Html.ActionLink("Delete", "Delete", new { id=item.ID })
            </td>
        </tr>
    }

    </table>

これをデバッグしてこのビューに移動すると、「EntityCommandExecutionException was unhandled by user code - コマンド定義の実行中にエラーが発生しました。詳細については内部例外を参照してください」というエラーが表示され、このメッセージは「@foreach( var item in Model) {" ケースのインデックス ビューに表示されます。また、Code First を使用しようとしているため、テーブルはまだ作成されていませんが、ビルド ソリューションにヒットしました。


どんな推奨事項も大歓迎です。ありがとう

4

0 に答える 0