Link Search Menu Expand Document

Size


This attribute is used to set the value of the DbParameter.Size property via a class property.

Attribute

Below a sample code on how to use this attribute.

public class Person
{
    public int Id { get; set; }

    [Size(256)]
    public string Name { get; set; }
}

This works exactly the same as Map or the Table attribute of the System.ComponentModel.DataAnnotations.Schema namespace.

Fluent Mapping

Below is a sample code on how to use this attribute via FluentMapper.

FluentMapper
    .Entity<Person>()
    .PropertyValueAttributes(e => e.Name, new SizeAttribute(256));

The value from the database table/view is taking the precedence if present.

Retrieval

You can retrieve the attribute via PropertyValueAttributeCache.

var attribute = PropertyValueAttributeCache
    .Get<Person>(e => e.Name, includeMappings: true)?
    .FirstOrDefault(e => e.GetType() == typeof(SizeAttribute));

Or, via the PropertyValueAttributeMapper.

var attribute = PropertyValueAttributeMapper
    .Get<Person>(e => e.Name)?
    .FirstOrDefault(e => e.GetType() == typeof(SizeAttribute));

We strongly suggest to always use the PropertyValueAttributeCache to maximize the performance.