Question

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!

Was it helpful?

Solution

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

.WithColumn("Version").AsCustom("rowversion").NotNullable();
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top