Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I setup a ROWVERSION/TIMESTAMP datatype column using FluentMigrator?

I am trying to use the ROWVERSION (or TIMESTAMP) datatype on a SQL Server table for optimistic concurrency control.

My table is setup using FluentMigrator and I do not know how to get the datatype I need. According to Microsoft's article on ROWVERSION, a nonnullable ROWVERSION column is semantically equivalent to a binary(8) column; the nullable ROWVERSION datatype is equivalent to a varbinary(8).

Here is an example and as close as I can get...

public override void Up()
    {
        Create.Table("Test")
            .WithColumn("Id").AsInt32().Identity().PrimaryKey()
            .WithColumn("Description").AsAnsiString(255)
            .WithColumn("RowVersion").AsBinary(8).NotNullable(); 
    }

.WithColumn("RowVersion").AsBinary(8).NotNullable(); is the line I can't figure out... There is no .AsRowversion or .AsTimestamp option.

Thanks in advance!

like image 589
BueKoW Avatar asked May 30 '12 19:05

BueKoW


1 Answers

Wow! How something can be so simple that I look right over the obvious...

.WithColumn("Version").AsCustom("rowversion").NotNullable();
like image 144
BueKoW Avatar answered Nov 07 '22 02:11

BueKoW