Я создаю приложение MVC и пытаюсь использовать aproach для кода при создании объектов и базы данных.Entity Framework Code-First Aproach и ModelValidationException
Я получаю ModelValidationException
при запуске кода. (Сообщение: System.Data.Entity.ModelConfiguration.ModelValidationException»произошло в EntityFramework.dll, но не был обработан в пользовательском коде)
Это код:
Контроллер:
public class HomeController : Controller {
PhonesDB _db = new PhonesDB();
public ActionResult Index() {
var model = from b in _db.ProductList //Exception appears here
select b;
return View(model);
}
}
Модели:
namespace SmartPhoneCatalog.Models {
public class Products {
public int ProductID { get; set; }
public string Manufacturer { get; set; }
public string Name { get; set; }
//...
}
}
namespace SmartPhoneCatalog.Models {
public class PhonesDB:DbContext {
public DbSet<Products> ProductList { get; set; }
}
}
и это вид:
@model IEnumerable<SmartPhoneCatalog.Models.Products>
@{
ViewBag.Title = "Home";
}
@foreach (var item in Model) {
<div>
<h4>@item.Name</h4>
<div>@item.Price</div>
<hr/>
</div>
}
ли я что-то отсутствует?
Пробовал запускать пустое приложение mvc, а затем шаблон, но имел ту же проблему на обоих.
Замена LINQ на var model = _db.ProductList.ToList();
не помогла. Также попробовал редактирования PhonesDB
модели (изменения в жирным):
public **partial** class PhonesDB : DbContext {
public PhonesDB():**base("PhonesDB")**{
}
**protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}**
public DbSet<Products> ProductList { get; set; }
}
все еще получаю же исключение. Любые идеи, как это исправить?
омг, такое простое решение, я искал его весь день. большое спасибо – arsena
Вы очень рад, рад, что я мог бы помочь! :) –