Я использую 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 (элемент var в модели)
за исключением:
"Таблица" mydb.vote "не существует"
изменить: Чтобы уточнить, я действительно хочу использовать плюрализацию таблиц, и, похоже, она правильно создает таблицу. Я надеюсь найти причину сингулярного/множественного несоответствия. Ни один из учебных пособий и видеороликов из microsoft/Plural Sight/scott gu не обрабатывает mysql, поэтому я должен представить себе, что .netconnector может быть виновником. Я также хотел бы избежать использования атрибутов [Таблица ( "Голосов" )]. В принципе, я надеюсь на как можно больше "из коробки".
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);
}
}