示例#1
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = GeneratedLine.GetHashCode();
         hashCode = (hashCode * 397) ^ GeneratedColumn.GetHashCode();
         hashCode = (hashCode * 397) ^ OriginalLine.GetHashCode();
         hashCode = (hashCode * 397) ^ OriginalColumn.GetHashCode();
         hashCode = (hashCode * 397) ^ (Source != null ? Source.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0);
         return(hashCode);
     }
 }
示例#2
0
        internal void AddGeneratedColumn(GeneratedColumn c)
        {
            bool   isIdentity   = false;
            string defaultValue = null;

            switch (c.SqlType)
            {
            case SqlType.INT:
            case SqlType.BIGINT:
                isIdentity = true;
                break;

            case SqlType.UNIQUEIDENTIFIER:
                defaultValue = "NEWID()";
                break;

            case SqlType.DATE:
            case SqlType.SMALLDATETIME:
            case SqlType.DATETIME:
            case SqlType.DATETIME2:
            case SqlType.DATETIMEOFFSET:
                defaultValue = "GETUTCDATE()";
                break;

            default:
                throw new Exception($"Invalid data type for auto-generated column: {c.SqlType}");
            }

            Columns.Add(new Column
            {
                Name         = c.Name,
                SqlType      = c.SqlType,
                Precision    = c.Precision,
                IsIdentity   = isIdentity,
                IsPrimaryKey = c.IsPrimaryKey,
                DefaultValue = defaultValue,
                IsNullable   = false
            });
        }