CRUD Models
The primary function of Coalesce, above all else, is to provide Create, Read, Update, and Delete (CRUD) API endpoints around your application's data model that you can easily call from your front-end code without having to wade through the tedium of building these API endpoints by hand.
To this end, there are three different methods of defining models that support CRUD operations:
All of these support the following:
- Generated API Controllers with
/get
,/list
,/count
,/save
endpoints (/bulkSave
unavailable for Standalone Entities). - Custom Methods
- TypeScript ViewModels and TypeScript ListViewModels
- Data Sources and Behaviors
- Admin pages
EF Entity Models
In Coalesce applications, most, if not all, of your data models will be Entity Framework Core entity models. These are built with standard EF conventions, but their interactions with Coalesce can be greatly customized.
Read more about EF Entity Models.
Standalone Entities
Standalone Entities are CRUD model types that support all the standard features of CRUD Models, but are not required to be based on Entity Framework. Instead, you the developer must define a data source that produces instances of the model. This can be an Entity Framework query, but could also be any other mechanism that you can imagine and write in C#.
Read more about Standalone Entities.
Custom DTOs
In addition to the generated Generated C# DTOs that Coalesce will create for you for EF Entity Models and Standalone Entities, you may also create your own implementation of an IClassDto
with customized properties and expose it as if it was a first-class CRUD Model type. These are known as Custom DTOs and support all the standard features of CRUD Models.
Note
Custom DTOs are an advanced feature of Coalesce and are not needed by most applications. In almost all cases, EF Entity Models can be customized to handle any needs that you might want to use a Custom DTO for, or Standalone Entities can be used to serve an alternate projection of an EF Entity Model.
Read more about Custom DTOs.