Описание тега dapper-fluentmap

None Простой API для отображения свойств POCO в столбцы базы данных при использовании Dapper

Dapper.FluentMap предоставляет простой API для сопоставления ваших свойств POCO со столбцами базы данных при использовании Dapper. Это избавляет от необходимости указывать псевдонимы столбцов в ваших запросах и сохраняет ваш POCO чистым от атрибутов сопоставления.

Чтобы установить пакет NuGet, введите в консоли диспетчера пакетов следующее:

PM> Install-Package Dapper.FluentMap

Dapper.FluentMap поддерживает сопоставление вручную и сопоставление на основе соглашений.

Ручная карта будет выглядеть так:

public class ProductMap : EntityMap<Product>
{
    public ProductMap()
    {
        // Map property 'Name' to column 'strName'.
        Map(p => p.Name)
            .ToColumn("strName");

        // Ignore the 'LastModified' property when mapping.
        Map(p => p.LastModified)
            .Ignore();
    }
}

Типичная реализация соглашения выглядит так:

public class TypePrefixConvention : Convention
{
    public TypePrefixConvention()
    {
        // Map all properties of type int and with the name 'id' to column 'autID'.
        Properties<int>()
            .Where(c => c.Name.ToLower() == "id")
            .Configure(c => c.HasColumnName("autID"));

        // Prefix all properties of type string with 'str' when mapping to column names.
        Properties<string>()
            .Configure(c => c.HasPrefix("str"));

        // Prefix all properties of type int with 'int' when mapping to column names.
        Properties<int>()
            .Configure(c => c.HasPrefix("int"));
    }
}

Дополнительные сведения о сопоставлении, настройке и инициализации см. В документации.