MySQLの.netコネクタ6.4.4.0とEntity Frameの作業4.1を使用しており、最も基本的なコードファースト実装を作成しようとしています。
public class myDB: DbContext
{
public DbSet 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);
}
}
私の強く型付けされたビュー(List scaffoldを使用)
@model IEnumerable
@{
ViewBag.Title = "Index";
}
Index
@Html.ActionLink("Create New", "Create")
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Value)
</th>
<th></th>
</tr>
@foreach(モデル内のvarアイテム) {
<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());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
public class myDBInitializer : DropCreateDatabaseAlways
{
protected override void Seed(myDBcontext)
{
base.Seed(context);
}
}