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控制器带视图,使用实体框架”和配置的控制器时
- 模型类:
(Solution.Models)Worker
- 数据上下文类:
(Solution.Models)WorkerDbContext
- 控制器名称:
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;