我正在使用 MySQL .net 连接器 6.4.4.0 和 Entity Frame work 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 中创建具有所有正确属性的表“投票”。
但是,它抛出了这一行:
@foreach(模型中的变量项)
有这个特例:
“表 'mydb.vote' 不存在”
编辑:为了澄清,我实际上想要表格复数,并且似乎可以正确创建表格。我希望找出单数/复数差异的原因。microsoft / Plural Sight / scott gu 的教程和视频都没有使用 mysql,所以我不得不想象 .netconnector 可能是罪魁祸首。我还想避免使用 [Table("Votes")] 属性。基本上,我希望尽可能多地提供“开箱即用”的解决方案。
edit2(一些更相关的代码):当我删除这个......表无法一起创建。但视图抛出一个异常寻找“投票”而不是“投票”。在 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);
}
}