Skip to content

Latest commit

 

History

History
41 lines (28 loc) · 1.58 KB

README.md

File metadata and controls

41 lines (28 loc) · 1.58 KB

Entity Framework Attribute Config

Allows you to configure properties by placing attributes on the properties of the Entity, rather than using the fluent configuration method. For example...

public class MyEntity 
{
    [DateTimePrecision(0)]    // Column will be created as datetime(0)
    public DateTime ShortDate { get; set; }
    
    [DecimalPrecision(18, 5)] // Column will be created as decimal(18,5)
    public decimal PreciseNumber { get; set; }
}

Install from nuget:

PM> Install-Package EFAttributeConfig

For each type of precision attribute you wish to use, add a line to your OnModelCreating method:

public class TestContext : DbContext 
{
	protected override void OnModelCreating(DbModelBuilder modelBuilder)
	{
	    base.OnModelCreating(modelBuilder);
	    
        // Add conventions for Precision Attributes
	    modelBuilder.Conventions.Add(new DecimalPrecisionAttributeConvention());
        modelBuilder.Conventions.Add(new DateTimePrecisionAttributeConvention());
	}
}

The following attributes have been implemented so far:

  • DecimalPrecisionAttribute - change the precision of a decimal
  • DateTimePrecisionAttribute - change the precision of a datetime2 or datetimeoffset type

Adding further attributes is simple - take a look at the implementation of the existing attributes for an example!

This project is an extension of this StackOverflow answer. Thanks to @richi2666 for the suggestion of using conventions instead of Reflection.