Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EntityType';工人';没有定义键。定义此EntityType的键_C#_.net_Entity Framework - Fatal编程技术网

C# EntityType';工人';没有定义键。定义此EntityType的键

C# EntityType';工人';没有定义键。定义此EntityType的键,c#,.net,entity-framework,C#,.net,Entity Framework,我的代码在解决方案.Models.Worker中: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; namespace Solution.Models { public class Worker { public int AsmensKodas { get; set; } pu

我的代码在
解决方案.Models.Worker中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace Solution.Models
{
    public class Worker
    { 
       public int AsmensKodas { get; set; }
       public string Vardas { get; set; }
       public string Pavarde { get; set; }
       public DateTime GimimoData { get; set; }
       public string Adresas { get; set; }
       public bool AktyvumoPozymis { get; set; } 
    }

    public class WorkerDBContext : DbContext
    {
        public DbSet<Worker> Worker { get; set; }
    }
}
当我尝试添加带有“MVC5控制器带视图,使用实体框架”和配置的控制器时

  • 模型类:
    Worker
    (Solution.Models)
  • 数据上下文类:
    WorkerDbContext
    (Solution.Models)
  • 控制器名称:
    WorkersController
我收到一条错误消息说

运行所选代码生成器时出错:
“无法检索”Solution.Models.Worker“的元数据。在模型生成过程中检测到一个或多个验证错误:
Solution.Models.Worker::EntityType“Worker”未定义键。
定义此EntityType的键。
Workers:EntityType:EntitySet“Workers”基于未定义键的类型“Worker”


有什么建议该做什么或我做错了什么吗?

模型的一个属性应该是关键。因此,将
[Key]
注释放在其中一个属性的顶部。像这样:

public class Worker
{ 
   [Key]
   public int AsmensKodas { get; set; }
   public string Vardas { get; set; }
   public string Pavarde { get; set; }
   public DateTime GimimoData { get; set; }
   public string Adresas { get; set; }
   public bool AktyvumoPozymis { get; set; } 

}
不要忘记使用指令将这一行添加到

using System.ComponentModel.DataAnnotations;

另外,如果您的
模型中有一个名为
Id
的属性,则无需向其添加
[Key]
属性

尝试清洁并重新构建解决方案以确保安全。以上内容应该可以解决您的问题。我也会手动清理,进入每个项目目录,删除所有
bin
obj
文件夹,然后重建。谢谢好心的先生,重建修复了它!我使用ADO.NET EF 6.0并自动生成模型类,因此添加“[Key]”注释是有问题的,因为每次更新模型时,它都会被删除。我曾尝试在扩展中添加注释,但它不起作用。有没有一种方法可以将其用于自动生成的代码?
using System.ComponentModel.DataAnnotations;