/// <summary> /// Initializes a new instance of the <see cref="Hellgate.ColumnAttribute"/> class. /// </summary> /// <param name="type">Type.</param> /// <param name="constraints">Constraints.</param> /// <param name="key">Key. If constraints [FK] table name</param> /// <param name="value">Value. If constraints [FK] column name</param> public ColumnAttribute(string type, DataConstraints constraints, Type key = null, string value = "") { this.type = type; this.constraints = new DataConstraints[] { constraints }; this.key = key; this.value = value; }
/// <summary> /// Converts to SQL constraints. /// </summary> /// <returns>The to SQL constraints.</returns> /// <param name="constraints">Constraints.</param> public string ConvertToSQLConstraints(DataConstraints[] constraints) { string cons = ""; for (int i = 0; i < constraints.Length; i++) { switch (constraints [i]) { case DataConstraints.AI: cons += " PRIMARY KEY AUTOINCREMENT"; break; case DataConstraints.NOTNULL: cons += " NOT NULL"; break; case DataConstraints.PK: if (Array.FindIndex (constraints, c => c == DataConstraints.AI) < 0) { cons += " PRIMARY KEY"; } break; case DataConstraints.FK: break; case DataConstraints.UNIQUE: cons += " UNIQUE"; break; } } return cons; }
/// <summary> /// Checks the constraints. /// </summary> /// <returns><c>true</c>, if constraints was checked, <c>false</c> otherwise.</returns> /// <param name="constraints">Constraints.</param> public bool CheckConstraints(DataConstraints constraints) { if (!isConstraints) { return(false); } if (this.constraints == null) { return(false); } if (Array.FindIndex(this.constraints, c => c == constraints) < 0) { return(false); } else { return(true); } }