С тех пор, как я начал использовать DATABASE FIRST, подход сущности. Это легко поймать и интересно, но есть одна вещь, которая озадачивает меня.
В MVC мы обычно создаем модели вида (модели со свойствами плюс-минус, поэтому он придерживается определенного вида). Хорошо, но при использовании EF с DB первый подход кажется невозможным. Поскольку мы создаем одну модель из таблицы базы данных, а затем продолжаем использовать ее для вставки, обновления, выбора или чего-либо еще.
, например
Модель услуг:
namespace ZahidCarWash.Models.EF
{
using System;
using System.Collections.Generic;
public partial class Services
{
public short ServiceID { get; set; }
public string ServiceName { get; set; }
public Nullable<decimal> ServicePrice { get; set; }
public Nullable<System.DateTime> EntryDateTime { get; set; }
public Nullable<bool> IsOwner { get; set; }
public Nullable<decimal> Commission { get; set; }
}
}
, а затем использовать его в контроллерах.
[HttpPost]
public JsonResult UpdateServices(Services UpdateServicesVM)
{
ServicesRepository ServicesRep = new ServicesRepository();
int i = 0;
//i = ServicesRep.UpdateServices(UpdateServicesVM, out ReturnStatus, out ReturnMessage);
ZahidCarWashDBEntities zjdb = new ZahidCarWashDBEntities();
zjdb.Entry(UpdateServicesVM).State = EntityState.Modified;
i= zjdb.SaveChanges();
return Json(new { ReturnMessageJSON = i > 0 ? "Success" : "Error", ReturnStatusJSON = i > 0 ? true : false });
}
или
[HttpPost]
public JsonResult AddServices(Services AddServicesVM)
{
ServicesRepository ServicesRep = new ServicesRepository();
int i = 0;
//i = ServicesRep.InsertServices(AddServicesVM, out ReturnStatus, out ReturnMessage);
ZahidCarWashDBEntities context = new ZahidCarWashDBEntities();
context.Services.Add(AddServicesVM);
context.SaveChanges();
return Json(new { ReturnMessageJSON = ReturnMessage, ReturnStatusJSON = ReturnStatus });
}
Я создал другие индивидуальные модели, добавив / удалив свойства, но это не очень хорошо звучит. Любой достойный способ сделать или EF обеспечивает?