Class Check
- Namespace
- YndigoBlue.Velocity.Constraints
- Assembly
- YndigoBlue.Velocity.dll
Represents a check constraint that enforces domain integrity by limiting the values that can be placed in a column.
public class Check : Constraint, IEquatable<Constraint>, IComparable<Constraint>
- Inheritance
-
Check
- Implements
Examples
// Define a table with check constraints
var table = new Table(schema, "products");
table.AddColumn("id", DataType.Integer, autoIncrement: true);
table.AddColumn("name", DataType.VarChar, 100);
table.AddColumn("price", DataType.Decimal);
table.AddColumn("quantity", DataType.Integer);
table.AddColumn("status", DataType.VarChar, 20);
// Create check constraint ensuring price is positive
var checkPrice = new Check("ck_products_price", schema.Name, "products",
new ICheckItem[] {
table["price"],
new CheckOperator(CheckOperatorType.GreaterThan),
new Literal<decimal>(0)
});
// Create check constraint for valid status values
var checkStatus = new Check("ck_products_status", schema.Name, "products",
new ICheckItem[] {
table["status"],
new CheckOperator(CheckOperatorType.In),
new Literal<string>("Active,Inactive,Discontinued")
});
Remarks
Check constraints validate data based on logical expressions. They are evaluated when data is inserted or updated. Common uses include range checks, value lists, and complex business rules.
Properties
- CheckItems
Gets or sets the collection of check items that make up the check expression.
- ConstraintType
Gets the type of constraint (PrimaryKey, ForeignKey, Unique, Check, or Default).
- Definition
Gets or sets the check constraint definition as a string (used when loading from database).
Methods
- GetColumnsForComparison()
Gets columns for comparison in a name-neutral way. Override in subclasses that have columns.
- IsEqual(Constraint)
Always returns true. A check item is usually transformed by an RDBMS and impossible to reliably compare
- ToString()
Returns a string that represents the current object.