Attributes
Coalesce provides a number of C# attributes that can be used to decorate your model classes and their properties in order to customize behavior, appearance, security, and more. Coalesce also supports a number of annotations from System.ComponentModel.DataAnnotations.
Coalesce Attributes
Browse the list in the sidebar to learn about the attributes that Coalesce provides that can be used to decorate your models.
ComponentModel Attributes
Coalesce also supports a number of the built-in System.ComponentModel.DataAnnotations attributes and will use these to shape the generated code.
[Display]
System.ComponentModel.DataAnnotations.DisplayAttribute
The displayed name and description of a property, as well as the order in which it appears in generated views, can be set via the [Display] attribute. By default, properties will be displayed in the order in which they are defined in their class.
[DisplayName]
System.ComponentModel.DisplayNameAttribute
The displayed name of a property can also be set via the [DisplayName] attribute.
[Description]
System.ComponentModel.DescriptionAttribute
The description of a type or member, such as a class, property, method, or parameter.
[Required]
System.ComponentModel.DataAnnotations.RequiredAttribute
Properties with [Required] will generate client validation and server validation rules.
[Range]
System.ComponentModel.DataAnnotations.RangeAttribute
Properties with [Range] will generate client validation and server validation rules.
[MinLength]
System.ComponentModel.DataAnnotations.MinLengthAttribute
Properties with [MinLength] will generate client validation and server validation rules.
[MaxLength]
System.ComponentModel.DataAnnotations.MaxLengthAttribute
Properties with [MaxLength] will generate client validation and server validation rules.
[DataType]
System.ComponentModel.DataAnnotations.DataTypeAttribute
Some values of DataType when provided to DataTypeAttribute on a string property will alter the behavior of the Vue Components. See c-display and c-input for details.
[ForeignKey]
System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute
Normally, Coalesce figures out which properties are foreign keys, but if you don't use standard EF naming conventions then you'll need to annotate with [ForeignKey] to help out both EF and Coalesce. See the Entity Framework Relationships documentation for more.
[InverseProperty]
System.ComponentModel.DataAnnotations.Schema.InversePropertyAttribute
Sometimes, Coalesce (and EF, too) can have trouble figuring out what the foreign key is supposed to be for a collection navigation property. See the Entity Framework Relationships documentation for details on how and why to use [InverseProperty].
[DatabaseGenerated]
System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedAttribute
Primary Keys with [DatabaseGenerated(DatabaseGeneratedOption.None)] will be settable on the client and will be appropriately handled by the Standard Behaviors on the server.
[NotMapped]
System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute
Model properties that aren't mapped to the database should be marked with [NotMapped] so that Coalesce doesn't try to load them from the database when searching or carrying out the Default Loading Behavior.
[DefaultValue]
System.ComponentModel.DefaultValueAttribute
Properties with [DefaultValue] will receive the specified value when a new ViewModel is instantiated on the client. This enables scenarios like pre-filling a required property with a suggested value.