Я пытаюсь понять все отношения MVC/EF. Если я создаю модель сущности, которая будет взаимодействовать только с базой данных (так как вы не должны передавать модель сущности в представление), то класс для модели и, наконец, модель представления, показанная ниже. Мой единственный вопрос заключается в том, что кажется излишним иметь второй класс, единственный в примерах, которые я видел, заключается в том, что они применяют аннотации данных к этому классу, поскольку он взаимодействует с представлением. Почему так важно убедиться, что объекты объектов arent не отображаются на уровне представления?Entity Framework и отношения с MVC
Я вообще-то не начал писать проект, но я предполагаю, что вы бы использовали модель Entity для взаимодействия с базой данных, а затем передали ее в ProductModel для перехода к представлению - это правильная логика?
Entity Model:
public class Product
{
[Key()]
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public double Price { get; set; }
}
Модель:
public class ProductModel
{
public int ID { get; set; }
[StringLength(50)]
[Required(ErrorMessage = "Product Name is required.")]
[Display(Name = "Product Name")]
public string Name { get; set; }
public string Description { get; set; }
public double Price { get; set; }
}
ViewModel:
public class ProductViewModel
{
Product myProduct { get; set; }\
//Plus any other properties I may need for the view.
}
UPDATE:
В Например, я читал, что у них также есть набор DBContext следующим образом. Тогда класс ProductModel бесполезен?
public class MyAppContext : DbContext
{
public MyAppContext()
: base("name=DBConnection")
{
}
public DbSet<Product> Products { get; set; }
}
Где вы читали, что вы не должны проходить «модель лица» с точки зрения? – Floremin