Entity Framework 模型优先时间戳

6
我正在开发基于Entity Framework的应用程序。我正在使用Model-First方法。我想处理并发问题。根据许多文章所述,我将通过将ConcurrencyMode设置为固定值来解决此问题,该字段是时间戳。目前我面临的问题是 - 我无法添加类型为时间戳的字段(列)。我该如何在模型中实现?
此处所述:
我尝试安装Entity Designer Database Generation Power Pack,但仍然看不到从模型生成时间戳的可能性(我甚至尝试在edmx文件中手动设置它,但仍未在生成的数据库中收到时间戳fcolumn)。
请帮忙。
2个回答

2

我认为数据库类型时间戳与EF中的二进制属性类型相对应。

我的模型的时间戳列是二进制类型,长度为8,固定长度为true,StoreGenratedPattern为Computed。

编辑:实际上,如果不更改t4模板,则无法实现,如此处所述:Entity Framework timestamp Generate Database issue


0

EF 6.1,我有这个:

public partial class DepartmentEFEntity
{

    Guid DepartmentUUID { get; set; }

    public byte[] TheVersionProperty { get; set; }
}

然后:

        modelBuilder.Entity<DepartmentEFEntity>().Property(o => o.TheVersionProperty).HasColumnType("timestamp").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed).IsRowVersion();

当我生成表的脚本时,会得到这个:
CREATE TABLE [dbo].[Department](
    [DepartmentUUID] [uniqueidentifier] NOT NULL,
    [TheVersionProperty] [timestamp] NOT NULL
    )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接