我的代码位于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控制器,使用实体框架的控制器时Worker
(Solution.Models)WorkerDbContext
(Solution.Models)WorkersController
我收到一条错误消息
运行所选代码生成器时出错:
'无法检索'Solution.Models.Worker'的元数据。在模型生成期间检测到一个或多个验证错误:
Solution.Models.Worker :: EntityType'Worker'没有定义键。
定义此EntityType的键 Workers:EntityType:EntitySet'Worker'基于类型'Worker',没有定义键。
有什么建议或我做错了吗?
答案 0 :(得分:2)
Model的一个属性应该是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]
属性。