Table of Contents

Identity Map Generator

IdentityMapGenerator emits a typed IdentityMap<TEntity,TKey> factory from a key selector.

[GenerateIdentityMap(typeof(TrackedOrder), typeof(string), FactoryName = "CreateMap")]
public static partial class GeneratedOrderIdentityMap
{
    [IdentityMapKeySelector]
    private static string SelectKey(TrackedOrder order) => order.OrderId;
}

Diagnostics

ID Severity Message
PKIM001 Error The host type must be partial.
PKIM002 Error Exactly one [IdentityMapKeySelector] method is required.
PKIM003 Error The key selector must be static, non-generic, return TKey, and accept one TEntity.

Register generated maps as scoped services when used with normal .NET hosts:

services.AddScoped<IIdentityMap<TrackedOrder, string>>(_ =>
    GeneratedOrderIdentityMap.CreateMap());