DataAnnotations - MaxLength Attribute:
MaxLength attribute can be applied to a string or array type property of a domain class. EF Code First will set the size of a column as specified in MaxLength attribute. Note that it can also be used with ASP.Net MVC as a validation attribute.
Consider the following example.
using System.ComponentModel.DataAnnotations; public class Student { public Student() { } public int StudentID { get; set; } [MaxLength(50)] public string StudentName { get; set; } }
As you can see in the above code, we have applied MaxLength attribute to StudentName. So, Code-First will create a nvarchar(50) column StudentName in the Student table as shown below.
Entity Framework also validates the value of a property for MaxLength attribute if you set the value more than the specified size. For example, if you set more than 50 chars long StudentName then EF will throw EntityValidationError.
MinLength:
MinLength attribute is a validation attribute. It does not have an impact on the database schema. EF will throw EntityValidationError if you set a value of a string or array property less than the specified length in MinLength attribute.
MinLength attribute can also be used with MaxLength attribute as shown below.
using System.ComponentModel.DataAnnotations; public class Student { public Student() { } public int StudentID { get; set; } [MaxLength(50),MinLength(2)] public string StudentName { get; set; } }
In the above example, StudentName can not be less than 2 chars and more than 50 chars.