Проектирование архитектуры системы

Исхоя из диаграммы, имеется три подхода к работе с данными в MVCCORE 2.0: Database First, Model First, и Code First.

 

Database First

 

В случае уже имеющейся базы данных Mvc Core 2.0можем автоматически создать модель данных, состоящую из классов и свойств, соответствующих объектам базы даных (таким, как таблицы и столбцы). Информация о структуре базы (store schema), модель данных (conceptual model) и маппинг их друг на друга содержится в XML в файле .edmx. Visual Studio предоставляет графический дизайнер, с помощью которого можно просматривать и редактировать .edmx.

Model First

 

Если базы нет, вы можете начать с создания модели данных, используя дизайнер Mvc Core Visual Studio. После окончания работ над моделью дизайнер сгенерирует DDL (data definition language)-код для создания базы. В этом подходе для хранения информации о модели и маппингах также используется .edmx.

 

Code First

 

Вне зависимости от наличия базы мы можем вручную написать код классов и свойств, соответствующих сущностям в базе и использовать этот код с Mvc Core без использования файла .edmx. Именно поэтому можно порой увидеть, как этот подход называют code only, хотя официальное наименование Code First. Маппинг между store schema и conceptual model в represented by your code is handled by convention and by a special mapping API. Если базы ещё нет, Mvc Core может создать, удалить или пересоздать её в случае изменений в модели.

API доступа к данным, разработанное для Code First, основано на классе DbContext. API может быть использован также и в процессе разработки с подходами Database First и Model First.

 

POCO (Plain Old CLR Objects)

 

По умолчанию для подходов Database First и Model First классы модели данных наследуются от EntityObject, который и предоставляет функциональность Mvc Core. Это значит, что эти классы не являются persistence ignorant и, таким образом, не полностью соответствуют одном из условий domain-driven design. Все подходы к разработке с Mvc Coreтакже могут работать с POCO (plain old CLR objects), что, в целом, значит, что они являются persistence-ignorant из-за отсутствия наследования EntityObject.

 

Разработка

Разработка базы данных системы


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: