MySQL.netコネクタ6.4.4.0とEntityFramework 4.1を使用しており、最も基本的なコードファースト実装を作成しようとしています。
public class myDB: DbContext
{
public DbSet<Vote> Votes { get; set; }
}
私のモデル
public class Vote
{
public Guid Id { get; set; }
public int Value { get; set; }
}
私のホームコントローラー
public class HomeController : Controller
{
myDB_db = new myDB();
public ActionResult Index()
{
var model = _db.Votes;
return View(model);
}
}
強く型付けされたビュー(リストスキャフォールドを使用)
@model IEnumerable<Namespace.Models.Vote>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Value)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Value)
</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>
これは、すべての適切なプロパティを使用してmySQLにテーブル「votes」を作成します。
ただし、次の行にスローされます。
@foreach(モデルのvarアイテム)
例外を除いて:
「テーブル'mydb.vote'は存在しません」
編集:明確にするために、私は実際にテーブルの複数化が必要であり、それはテーブルを適切に作成しているようです。単数形/複数形の不一致の理由を発見したいと思っています。microsoft / Plural Sight / scott guのチュートリアルやビデオはどれもmysqlを使用して処理しないため、.netconnectorが原因である可能性があることを想像する必要があります。また、[Table( "Votes")]属性の使用は避けたいと思います。基本的に、私はできるだけ多くの「すぐに使える」ソリューションを望んでいます。
edit2(いくつかのより関連性の高いコード):これを削除すると...テーブルをすべて一緒に作成できません。ただし、ビューは「vote」ではなく「votes」を検索する例外をスローします。global.asax内
protected void Application_Start()
{
Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
public class myDBInitializer : DropCreateDatabaseAlways<myDB>
{
protected override void Seed(myDBcontext)
{
base.Seed(context);
}
}