Extend Sitefinity CMS data model: Create the provider class

After you create the fluent mappings, you create the custom provider class. 

Sitefinity's CMS architecture is based on the provider model design pattern, which provides a number of extensibility possibilities. The provider class in this example inherits from the OpenAccessPageProvider class that stores and retrieves page data. The exposed methods in the CustomPageProvider are used to create and retrieve objects from the database context.

To create the custom provider class, perform the following:

  1. In Visual Studio, open the context menu of the CustomTypes project and click Add » Class.
  2. Name the class file CustomPageProvider.cs and click Add.
  3. Make the CustomPageProvider class inherit the OpenAccessPageProvider class and implement the IOpenAccessMetadataProvider interface.
    IYou use the ContentProviderDecoratorAttribute to tell the provider class which data provider decorator to use.
  4. Implement the GetMetaDataSource method to return the CustomMetaDataSource.
  5. Implement the following operations:
    • Create custom type
    • Get custom type
    • Get custom types
    • Delete custom type

Use the following code sample:

Increase your Sitefinity skills by signing up for our free trainings. Get Sitefinity-certified at Progress Education Community to boost your credentials.

Get started with Integration Hub | Sitefinity Cloud | Sitefinity SaaS

This free lesson teaches administrators, marketers, and other business professionals how to use the Integration hub service to create automated workflows between Sitefinity and other business systems.

Web Security for Sitefinity Administrators

This free lesson teaches administrators the basics about protecting yor Sitefinity instance and its sites from external threats. Configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.

Foundations of Sitefinity ASP.NET Core Development

The free on-demand video course teaches developers how to use Sitefinity .NET Core and leverage its decoupled architecture and new way of coding against the platform.

Was this article helpful?