首页 > 代码库 > 关于MVC EntityType has no key defined的问题
关于MVC EntityType has no key defined的问题
关于MVC EntityType has no key defined的问题
在测试MVC时发现一个奇怪的问题,在Model中定义数据类时,如
public class UserInfo { public int UserId{get;set;} public string Name { get;set; } public string PassWord{get;set;} //public virtual ICollection<TalkInfo> TalkInfo { get;set; } }
使用该类生成Controler类时发生异常
错误提示:EntityType has no key defined.Define the key for this EntityType.(网上资料不是很多,难道我哪里写错了?继续研究..)
从提示看,没有创建类数据的Key值,OK,我们在类中定义一个KEY,
[Key] ----添加Key属性时引用了using System.ComponentModel.DataAnnotations命名空间
public string Name { get;set; }重新生成Controler类,没有错误提示,生成正常,View中的Index、Creat等页面也自动生成。但是这时候出现了下面问题:
在生成的View的Create等页面中,没有了Name的创建,也就是说Controler生成时自动忽略了添加了Key属性的Name,而此时无法创建Name,作为一个Key,Name为空肯定是有问题的,但是在Create页面手动添加Name的label,运行网站时此时会抛出新的异常,
Validation failed for one or more entities. See ‘EntityValidationErrors‘ property for more details
db.SaveChanges();应该是Name的Key问题,但是具体要改正什么地方无处下手.在View中加入: <div class="editor-label"> @Html.LabelFor(model => model.Name) </div> <div class="editor-field"> @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) </div>此时可以传入Name值,只要不为空,即可正常插入。但是Talkinfo还是有点小问题。总之上述问题至此解决,接着研究TalkInfo:)
关于MVC EntityType has no key defined的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。