[英]EntityType has no key defined. Define the key for this EntityType
[英]EntityType 'Worker' has no key defined. Define the key for this EntityType
我的代码在Solution.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; }
}
}
我通过添加更改了web.config
文件
<connectionStrings>
<add name="WorkerDBContext"
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Workers.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
当我尝试添加带有“MVC 5 Controller with views, using Entity Framework”和配置的控制器时
Worker
(Solution.Models)WorkerDbContext
(Solution.Models)WorkersController
我收到一条错误消息说
运行所选代码生成器时出错:
'无法检索'Solution.Models.Worker'的元数据。 在模型生成过程中检测到一个或多个验证错误:
Solution.Models.Worker::EntityType 'Worker' 没有定义键。
定义此 EntityType 的键。
Workers:EntityType:EntitySet 'Workers' 基于没有定义键的类型 'Worker'。
有什么建议可以做什么或我做错了什么?
模型的属性之一应该是 Key。 因此,将[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
指令中:
using System.ComponentModel.DataAnnotations;
此外,如果您的Model
有一个名为Id
属性,则无需向其添加[Key]
属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.