首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >消除EF核心1.0 RC2 (原EF 7 RC2)中的自动增量

消除EF核心1.0 RC2 (原EF 7 RC2)中的自动增量
EN

Stack Overflow用户
提问于 2017-01-28 09:47:30
回答 2查看 5.1K关注 0票数 4

在EntityFrameworkCore1.0 RC2 (前实体框架7 RC2)中,默认情况下,所有的整数主键都是自动增量字段。我用尽一切办法把它移除。从使用数据注释到fluent API,什么都不起作用。

使用数据注释:

代码语言:javascript
复制
[Key, Column(Order = 1, TypeName = "INT"), DatabaseGenerated(DatabaseGeneratedOption.None)]

使用fluent API:

代码语言:javascript
复制
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId).HasAnnotation("DatabaseGenerated", DatabaseGeneratedOption.None);

//OR use the following
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId).HasAnnotation("DatabaseGenerated", 0);

//OR use the following
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId).HasAnnotation("Sqlite:Autoincrement", false);

什么也没起作用

你能帮帮我吗?

已更新

按照要求,下面是在运行add- LocalDB_v1之后获得的表脚本。

代码语言:javascript
复制
migrationBuilder.CreateTable(
            name: "tblProduct",
            columns: table => new
            {
                ProdId = table.Column<int>(nullable: false)
                    .Annotation("Sqlite:Autoincrement", true),
                Name = table.Column<string>(nullable: true),
                Description = table.Column<string>(nullable: true)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_tblProduct", x => x.ProdId);
            });
...
...
...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-28 12:47:33

在EF核心,key and property are configured separately

若要指定密钥,请执行以下操作:

代码语言:javascript
复制
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId);

若要配置非自动增量的属性,请执行以下操作:

代码语言:javascript
复制
modelBuilder.Entity<tblProduct>().Property(t => t.ProdId).ValueGeneratedNever();
票数 18
EN

Stack Overflow用户

发布于 2017-01-28 09:51:08

我没有和EF 7一起工作,但是没有几个点需要检查。

  • 更改模型后,需要更新数据库、迁移或手动更新。
  • 如果现在字段上有自动增量,请签入数据库。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41908391

复制
相关文章

相似问题

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