我使用EF - Model First来保存我的实体。 我添加了一个专栏" RowVersion"选项:
在元数据类中,我添加了注释[Timestamp]。
但是当我在表中添加/插入实体时,属性RowVersion保持为null。 现在插入没有了,因为我将列设置为可空,但是它继续运行到一个异常,告诉我RowVersion是NULL。
我怎么解决这个问题?
答案 0 :(得分:1)
我看到完全相同的行为。我整个下午都在努力工作,我唯一可以开始工作的是在这个链接上实现解决方案: http://www.undisciplinedbytes.com/2012/03/creating-a-timestamp-column-with-entity-framework/
以下是从链接中复制的步骤:
带有模型优先方法的时间戳列
现在,使用模型优先方法设置此列有点棘手。 EF的模型本身没有内置支持,所以我们必须破解代码生成模板以满足我们的需求。
使用模型优先方法设置时间戳列需要做的是:
[<#= Id(prop.Name)#>]<#= prop.ToStoreType()#> <#= WriteIdentity(prop,targetVersion)#> <#= WriteNullable(prop.Nullable)#><#=(p< entitySet.ElementType.Properties.Count - 1)? “,”:“”“#>
将其更改为:
[<#= Id(prop.Name)#>]< #if(string.Compare(prop.Name,“TimeStamp”,true)== 0){#> TIMESTAMP<#} else {#><#= prop.ToStoreType()#><#}#> <#= WriteIdentity(prop,targetVersion)#> <#= WriteNullable(prop.Nullable)#><#=(p< entitySet.ElementType.Properties.Count - 1)? “,”:“”“#>
这会将名为“Timestamp”的任何列(不区分大小写)更改为Timestamp列。