MySQL使用EF Code First时TimeStamp/RowVersion类型的处理方法

探讨在使用Entity Framework Code First时,针对MySQL数据库中TimeStamp或RowVersion类型字段的处理方法,寻求高版本EF在不同数据库环境下的适配方案。
摘要由CSDN通过智能技术生成
 环境:
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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值