环境:
mysql5.5
.Net Connector 6.6.4
EF 4.3.1
模型要求:
很多业务要求并发处理,时间戳是个很好的选择.
代码如下:
public class Test
{
public int ID { get; set; }
public string Name { get; set; }
public byte[] LastChanged { get; set; }
}
问题描述:在LastChanged属性用Data Annotations标记[Timestamp]
[Timestamp]
public byte[] LastChanged { get; set; }
或者Fluent API中配置成IsRowVersion()
DbModelBuilder 作如下配置
modelBuilder.Entity<Test>().Property(p => p.LastChanged).IsRowVersion();
或者EnityTypeConfiguration<T>类中配置
Property(p=>p.LastChanged).IsRowVersion();
在Migration的时候 会有错误,如下:
错误 0040: 类型 rowversion 未使用命名空间或别名进行限定。只有 PrimitiveType 才可以在不限定的情况下使用。
原因是 MySqlMigrationSqlGenerator不允许byte[]类型上标记TimeStamp/RowVersion
那应该用什么类型?
database first来看看 这里就不截图 加表 设置字段类型 TIM
mysql5.5
.Net Connector 6.6.4
EF 4.3.1
模型要求:
很多业务要求并发处理,时间戳是个很好的选择.
代码如下:
public class Test
{
public int ID { get; set; }
public string Name { get; set; }
public byte[] LastChanged { get; set; }
}
问题描述:在LastChanged属性用Data Annotations标记[Timestamp]
[Timestamp]
public byte[] LastChanged { get; set; }
或者Fluent API中配置成IsRowVersion()
DbModelBuilder 作如下配置
modelBuilder.Entity<Test>().Property(p => p.LastChanged).IsRowVersion();
或者EnityTypeConfiguration<T>类中配置
Property(p=>p.LastChanged).IsRowVersion();
在Migration的时候 会有错误,如下:
错误 0040: 类型 rowversion 未使用命名空间或别名进行限定。只有 PrimitiveType 才可以在不限定的情况下使用。
原因是 MySqlMigrationSqlGenerator不允许byte[]类型上标记TimeStamp/RowVersion
那应该用什么类型?
database first来看看 这里就不截图 加表 设置字段类型 TIM