С тех пор, как я начал использовать подход DATABASE FIRST к структуре сущностей. Это легко понять и интересно, но есть одна вещь, которая меня озадачивает.
В MVC мы обычно создаем модели представлений (модели со свойствами плюс-минус, чтобы они соответствовали конкретному представлению). Хорошо, но при использовании EF с первым подходом к БД это кажется невозможным. Потому что мы создаем одну модель из таблицы базы данных, а затем продолжаем использовать ее для вставки, обновления, выбора или чего-то еще.
e.g.
Модель услуг:
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 });
}
Or
[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 предоставляет?