我试图在SQL Server表上使用ROWVERSION(或TIMESTAMP)数据类型进行乐观并发控制。

我的表是使用FluentMigrator设置的,我不知道如何获取所需的数据类型。根据Microsoft's article on ROWVERSION 不可空ROWVERSION 列在语义上等效于 binary(8)列; 可为空的ROWVERSION 数据类型等效于 varbinary(8)

这是一个例子,我尽力而为。。。

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(); 是我不知道的那一行...没有 .AsRowversion .AsTimestamp 选项。

提前致谢!

最佳答案

哇!事情是如此简单,以至于我直视显而易见的事物……

.WithColumn("Version").AsCustom("rowversion").NotNullable();

10-06 09:27