首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用EF4.3移动添加TimeStamps

使用EF4.3移动添加TimeStamps
EN

Stack Overflow用户
提问于 2012-03-07 08:04:19
回答 3查看 2.2K关注 0票数 3

我正在使用,并且正在修改我的模型以将时间戳字段添加到我的表中。我正在尝试在第二次迁移中添加时间戳字段。下面是我的代码的示例

代码语言:javascript
复制
public class User {
    public int UserId { get; set; }
    public string UserName { get; set; }      
    public byte[] TimeStamp { get; set; }
}

 public class UserModelConfiguration: EntityTypeConfiguration<User> {
        public UserModelConfiguration() {
            Property(p => p.UserName).IsRequired().HasMaxLength(250);
            Property(p => p.TimeStamp).IsRowVersion();            
        }
    }

生成的迁移如下所示

代码语言:javascript
复制
public override void Up()
        {                
            AddColumn("Users", "TimeStamp", c => c.Binary(nullable: false, fixedLength: true, timestamp: true, storeType: "rowversion"));
        }

执行更新-数据库命令时,会收到一条错误消息:“不能在数据类型时间戳的列上创建默认值。表‘用户’,列‘时间戳’。无法创建约束。”我将所有数据从表中移出,但这并没有解决问题。

如何将时间戳字段添加到这个迁移集?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-07 14:48:04

使用nullable:true。时间戳列将在列规范中包含null,但无论如何它都将被填充。

票数 6
EN

Stack Overflow用户

发布于 2012-03-07 13:22:48

我们今天刚刚遇到了这个问题。我们的解决方案是删除表,然后通过迁移重新创建它。2单独的迁移脚本。

如果您想要保留数据,显然并不理想,但是,在我们的例子中,这不是一个问题。

听到一个不那么疯狂的解决方案会很有趣。

HTH。

票数 0
EN

Stack Overflow用户

发布于 2012-04-01 21:06:07

FYI这个错误是在EF5.0 beta 2中修复的。以前版本最好的解决方法就是这里已经提到的:指定可空的:true。感谢您的报道!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9597766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档