IColumnTypeSyntax<TNext>
--------+- AsAnsiString -+--------+-------------+---------------+-> TNext
| | | | |
| +- size -+- collation -+ |
| |
+- AsBinary -----+--------+-----------------------------+
| | | |
| +- size -+ |
| |
+- AsBoolean -------------------------------------------+
| |
+- AsByte ----------------------------------------------+
| |
+- AsCurrency ------------------------------------------+
| |
+- AsDate ----------------------------------------------+
| |
+- AsDateTime ------------------------------------------+
| |
+- AsDateTime2 -----------------------------------------+
| |
+- AsDateTimeOffset -+-------------+--------------------+
| | | |
| +- precision -+ |
| |
+- AsDecimal --------+--------------------------+-------+
| | | |
| +- precision ------ scale -+ |
| |
+- AsDouble --------------------------------------------+
| |
+- AsGuid ----------------------------------------------+
| |
+- AsFixedLengthString --- size -----+-------------+----+
| | | |
| +- collation -+ |
| |
+- AsFixedLengthAnsiString --- size -+-------------+----+
| | | |
| +- collation -+ |
| |
+- AsFloat ---------------------------------------------+
| |
+- AsInt16 ---------------------------------------------+
| |
+- AsInt32 ---------------------------------------------+
| |
+- AsInt64 ---------------------------------------------+
| |
+- AsString -----+--------+-------------+---------------+
| | | | |
| +- size -+- collation -+ |
| |
+- AsTime ----------------------------------------------+
| |
+- AsXml --------+--------+-----------------------------+
| | | |
| +- size -+ |
| |
+- AsCustom --- customType -----------------------------+
IColumnOptionSyntax<TNext,TNextFk>
--------+- WithDefault --- method --------------------------------------+--> TNext
| |
+- WithDefaultValue --- value ----------------------------------+
| |
+- WithColumnDescription --- description -----------------------+
| |
+- Identity ----------------------------------------------------+
| |
+- Indexed -----------------------------------------------------+
| |
+- PrimaryKey -+--------+---------------------------------------+
| | | |
| +- name -+ |
| |
+- Nullable ----------------------------------------------------+
| |
+- NotNullable -------------------------------------------------+
| |
+- Unique -----+--------+---------------------------------------+
| | |
| +- name -+
|
+- ForeignKey ---+-------------------------------------------+--+--> TNextFk
| | | |
| +-----------------------+- table --- column-+ |
| | | |
| +- name -+-+----------+-+ |
| | | |
| +- schema -+ |
| |
+- ReferencedBy -+-----------------------+- table --- column-+--+
| |
+- name -+-+----------+-+
| |
+- schema -+
IForeignKeyCascadeSyntax<TNext,TNextFk>
--------+- OnDeleteOrUpdate --- rule ---> TNext
|
+- OnDelete --- rule -+---------> TNextFk
| |
+- OnUpdate --- rule -+