Katyca Ответов: 1

Как я могу выполнить CRUD с шаблоном MVVM в ASP.NET веб-приложение


У меня есть 2 слоя в моем веб-приложении. 1. это бизнес-слой с доменными моделями и контекстными классами для каждой модели. 2. есть пользовательский слой с моделями представлений, и он должен быть с контроллерами и представлениями.
Моя задача состоит в том, чтобы сделать CRUD над доменными моделями, но также и над моделями представлений. Итак, у меня есть 2 контекстных класса (один в первом слое и второй во втором слое), которые являются ошибкой.
Как я могу сделать CRUD над обеими моделями (домен и viewmodels), не имея двух контекстных классов?
Когда я делаю контроллер с contextClass из модели домена, у меня появляется ошибка - > показать вам ниже в разделе controller 'details, edit and delete actionResult'

Напр.
//domain model
Public class Car:ICar
{
[Key]
public int I'd{get; set;}
public string Name{get; set}
}

//viewModel
Public class ViewCar:Car
{
[Display(Name="Cars model")]
public string Name{get; set;}
}

//controller
public ActionResult Details(int? I'd)
{
if(id==null)
{return new HttpStatusCodeResult(HttpStatusCode.BadRequest);}
ViewCar viewCar=db.Cars.Find(id);
if(viewCar==null)
{return HttpNotFound();}
return View (viewCar);
}

Ошибка находится в строке, где мне нужно найти по идентификатору, и это говорит
"Cannot implicitly convert type 'Project.Services.Car' to 'Project.MVC.ViewModels.ViewCar'. An explicit conversion exists (are you missing a cast?)"


Мой другой вопрос заключается в том, как я могу бросить один проект в другой?

Что я уже пробовал:

Я читал по всему интернету, и там есть похожие ответы от int до string и так далее, но я не нашел никаких примеров от кастинга одного проекта к другому. Так что, пожалуйста, если кто-нибудь может дать мне объяснение, как я могу сделать этот бросок? А как сделать CRUD над моделями в бизнес-слое и над viewModels в пользовательском слое и с одним контекстным классом (как это должно быть в первую очередь)?

1 Ответов

Рейтинг:
0

F-ES Sitecore

Короткий ответ заключается в том, что вы не можете\не должны. Модели представлений-это не объекты базы данных, а модели, содержащие данные, необходимые для отображения страницы. Иногда действительно существует взаимно однозначная связь между моделью представления и моделью базы данных, особенно для простых данных и страниц, но это исключение не является правилом.

Модели данных и модели представления отдельных. Если существует много общего между моделью данных и моделью представления, то используйте автоматический картограф (например, automapper, google for it) для "преобразования" между моделью данных и моделью представления и наоборот.