实体框架时间戳生成数据库问题

Bri*_*kim 9 database timestamp entity-framework

我遇到了EF 4.0的问题我创建了带有"timestamp"列的实体.之后,我尝试生成数据库.

在SQL脚本中,列看起来像'binary(8)'而不是时间戳.

怎么解决?

Bri*_*kim 12

问题解决了:EF 4无法从edmx设计器生成时间戳列.解决方案很简单:

  1. 将类型设置为二进制.
  2. 将nullable设置为false.
  3. 将StoreGeneratedPattern设置为Computed.
  4. 将ConcurrencyMode设置为Fixed.
  5. 创建SSDLToSQL10.tt的副本(通常位于C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen).我们称之为MySSDLToSQL10.tt.
  6. 编辑说明的行(当前为151):

[<#= Id(prop.Name)#>] <#= prop.ToStoreType()#> <#= WriteIdentity(prop,targetVersion)#> <#= WriteNullable(prop.Nullable)#> <#=(p <entitySet.ElementType.Properties.Count - 1)?",":""#>

  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)?",":""#>