繁体   English   中英

如何在Entity Framework代码优先中将列更改为唯一身份

How to alter column to unique identity in Entity Framework Code First

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

自从开始我正在从事的项目以来,我已经多次重新设计了班级计划。

起初我不了解数据注释,所以我有了migration1 ,其中我的Ids没有DatabaseGenerated.Identity选项,而migration4那里已经有它。

事实证明EF无法以这种方式工作(对于EF5, https ://entityframework.codeplex.com/workitem/509),因此当我添加一些种子数据时,它抛出了异常

无法将值NULL插入表'tablename'的列'primarykeycolumn'中; 列不允许为空。 INSERT失败。

真正有趣的是,当我删除所有现有迁移并从头开始构建新迁移时,种子方法运行没有任何问题。

所以我有一个问题:更改方案(例如添加诸如Identity类的数据注释)时是否需要做任何事情,还是有办法保存以前的迁移? 因为在现实生活中删除和重新创建db会导致巨大的数据丢失,我想避免这种情况。

1 个回复

添加迁移。 在您的Package Manager控制台中

Add-Migration Test1

在迁移类的Configuration.cs中,您将看到Up方法和Down方法。 就像更改之前和之后。 如果要撤消更改,可以调用它们。

doing Add-Migration "NameoftheMigration" does not implement it

你需要打电话

Update-Database

如果它告诉您有错误或潜在的数据丢失。

Update-Database -Force

如果您选择使用CodeFirst。 您不能真正通过设计然后通过代码从“更改表”中跳转。 您必须选择一个。 由于CodeFirst迁移依赖于模型。 数据第一,依靠数据设计。

5 实体框架代码第一个反向工程师标识列插图

我正在使用EntityFramework作为我的ORM。 我已经使用逆向工程创建了代码模型,并将生成的域对象移至我的核心层。 当我尝试创建一个新实体,该实体在数据库中具有带有标识增量的标识列,并执行SaveChanges()时-失败。 我使用探查器查看正在发送到数据库的内容,并且看到它 ...

9 如何将主键标识列添加到实体框架代码首先生成的模型

我通过“添加服务参考”将Web服务(ASMX)添加到VS2010项目中。 这将在Reference.cs文件中生成代理类。 其中一些类是我在Web服务上调用的方法的返回值。 我试图使用实体框架4.1“代码优先”将这些类持久化到我的SQL Server数据库中。 我遇到的问题是这些类没 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM