学习MVC根据Models创建操作控制器出错:EntityType 'XXXX' has no key defined. Define the key for this EntityType

错误信息如下:

System.Data.Edm.EdmEntityType: : EntityType 'UserInfo' has no key defined. Define the key for this EntityType.

步骤是在操作根据Models创建数据库操作控制器创建时提示出错。

原因:Models实体类中没有定义键(key),

稍微想想也是,它是通过模型来生成数据库操作控制器,其中有对数据的增删查改操作,连主键都没有标定,怎么可能来生成增删查改。

解决方法,当然是标定好键Key

首先需要添加引用:using System.ComponentModel.DataAnnotations;

 public class UserHy

    {
      [Key] //<--------就是这个东西啦~

     public int UserId { get; set; }//在模型属性上写[Key]就好了
              
        public string UserName { get; set; }

}

希望能帮到各位小伙伴~

友情提示:在官方文档中:

https://docs.microsoft.com/zh-cn/aspnet/mvc/overview/getting-started/introduction/accessing-your-models-data-from-a-controller

这个电影模型中,并没有标定这个Key,教程就能操作成功,我阅读了一下源文档,其中说如果模型其中的属性为ID

  public int ID { get; set; },它就自动默认这个是Key。所以我估计遇到这个问题的小伙伴都是我一样,没用默认名称。而中文资料上没有写这句话~~坑爹啊~~~~坑爹啊~~~~坑爹啊~~

祝各位好运!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值