首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC核心中的脚手架控制器时找不到主键

MVC核心中的脚手架控制器时找不到主键
EN

Stack Overflow用户
提问于 2017-08-02 18:58:30
回答 6查看 12.6K关注 0票数 7

当尝试搭建控制器时,我得到以下错误:

“运行所选代码生成器时出错:‘实体类型'Company.Models.Office’需要在Microsoft.VisualStudio.Web.CodeGeneration.ActionInvoker.b_6-0()”中定义主键

我是MVC核心的新手,但我的理解是,在默认情况下,主键被定义为ID或classnameID。我还尝试添加Key属性并将主键重命名为OfficeID。我和另一门课也经历过类似的过程,没有遇到这个问题。

代码语言:javascript
复制
public class Office
    {
        public int ID;
        public string Name;
        public int SiteID;

    }
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-08-02 21:05:21

我不确定这是否能解决你的问题,但也许可以尝试以下几点。这听起来很像你已经描述过的,不过我还是发了出来,只是为了确定一下。

代码语言:javascript
复制
public class Office
{
    [Key]
    public int OfficeID { get; set; }
    public string Name { get; set; }
    public int SiteID { get; set; }
}

您应该意识到,主键的名称并不重要。但是,为了方便和遵循标准,您应该将其命名为“ID”或表/类名加“ID”。

另外,您是否尝试过重新启动Visual和您的PC?有时,我发现这是解决某些编译时错误的唯一方法。

票数 15
EN

Stack Overflow用户

发布于 2020-02-08 09:17:24

在中,我遇到了一个类似的问题。将这个添加到您的Dbcontext文件中可能会有帮助!!

代码语言:javascript
复制
protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
                modelBuilder.Entity<Office>(entity =>
                {
                    entity.HasKey(x=>x.OfficeID);

                });
            }
票数 6
EN

Stack Overflow用户

发布于 2020-05-07 20:18:12

确保将entity.HasNoKey();也从modelBuilder中删除。

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

https://stackoverflow.com/questions/45468959

复制
相关文章

相似问题

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