Telerik Data Access uses Enhancer, which is a special enhancer program, to read and process compiled .NET assemblies for adding persistence capability. It is delivered to you through the Telerik.DataAccess.Fluent NuGet package and can be called either manually through the command line, or by Visual Studio during build time to process the .NET assemblies in your project. The Enhancer injects the lazy loading and change tracking code into your persistent classes and replaces the read and write calls to persistent fields. Enhancement must be executed on all assemblies containing persistent classes or code that touches public fields of persistent objects. The tool has to collect all the mapping information for the assembly that you want to enhance and the referenced assemblies which contain persistent classes as well.
Telerik Data Access calls Enhancer as a post-build step. However, if you have specified any post-build events in your visual studio properties, first those events will be called followed by the call to the Enhancer. The post-build step is integrated in the project file by NuGet Package Manager.