public RestmeDbColumnAttribute(string dbColumnName, RestmeDbColumnType type, [CallerMemberName] string callerMemberName = "") { if (dbColumnName.IsNullOrEmpty() && callerMemberName.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(dbColumnName)); } DbColumnName = dbColumnName.IsNullOrEmpty() ? callerMemberName : dbColumnName; SetPropertiesByColumnType(type); }
private void SetPropertiesByColumnType(RestmeDbColumnType type) { ColumnType = type; switch (type) { case RestmeDbColumnType.NormalColumn: InSelect = true; InUpdate = true; InInsert = true; InDelete = true; break; case RestmeDbColumnType.ForeignKey: InSelect = true; InUpdate = true; InInsert = true; InDelete = true; break; case RestmeDbColumnType.AutoGeneratedPrimaryKey: InSelect = true; InUpdate = false; InInsert = false; InDelete = true; break; case RestmeDbColumnType.ViewColumn: InSelect = true; InUpdate = false; InInsert = false; InDelete = true; break; case RestmeDbColumnType.NormalPrimaryKey: InSelect = true; InUpdate = true; InInsert = true; InDelete = true; break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }