Classes and interfaces

In this section, each class and interface of the concept will be explained in details.


Kipon.Xrm.IUnitOfWork is the base class for the the Kipon Solid iterface map of the Dynamics 365 CE context. The crmsvcutil is generating a context class that allow you to do CRUD operation and execute std- and customactionrequest against the Dynamics 365 CE datasource. The main problem is that it is an actual implementation, not an abstraction┬┤, and as such, the generated crmsvcutil context should not be injected anywhere. (all dependencies should be based on abstractions).

Kipon Solid plugin is generating a solution specific interface in your Entities folder that extends this interface, and addeds Kipon.Xrm.IRepository<entity> properties for each entity you define in the filter.xml. The Kipon.Xrm.IUnitOfWork is just the base interface for that, and is never injected directly into anything. It is there only to define the base interface for your Dynamics 365 CE datamodel.

  • R ExecuteRequest<R>(OrganizationRequest request) where R : OrganizationResponse

    Execute the request parsed against the Dynamics 365 CE datasource, return the stronly typed response.

  • OrganizationResponse Execute(OrganizationRequest request)

    Execute the request parsed. Don't worry to much about types

  • System.Guid Create(Entity entity)

    Create an instance of entity

  • void Update(Entity entity)

    Update the entity

  • void Delete(Entity entity)

    Delete the entity

  • void ClearContext()

    Clear the underlying cache. (remove all entities from the underlying crmsvcutil generated context)

  • void Detach(string logicalname, params Guid[] ids)
    void Detach(Microsoft.Xrm.Sdk.EntityReference reference)
    void Detach(Microsoft.Xrm.Sdk.Entity entity)

    Remove elements from the underlying cache, based on the reference parsed

  • ServiceAPI.IEntityCache Cache { get; }

    Get the underlying service cache

© Kipon ApS 2020, 2021, 2022, 2023. All content on the page is the property of Kipon ApS. Any republish or copy of this content is a violation. The content of this site is NOT open source, and cannot be copied, republished or used in any context without explcit permission from the owner.