大家MVC框架出现 “请为该 EntityType 定义键” 错误

问题描述

代码:publicclassBaseRepository<T>:InterfaceBaseRepository<T>whereT:class{//数据访问接口protectedNineskyDbContextnContext=ContextFactory.GetCurrentContext();publicTAdd(Tentity){nContext.Entry<T>(entity).State=System.Data.Entity.EntityState.Added;nContext.SaveChanges();returnentity;}publicintCount(Expression<Func<T,bool>>predicate){returnnContext.Set<T>().Count(predicate);}继承基类publicclassUserRepository:BaseRepository<User>,InterfaceUserRepository{}定义工厂publicstaticclassRepositoryFactory{publicstaticInterfaceUserRepositoryUserRepository{get{returnnewUserRepository();}}}创建模型publicclassNineskyDbContext:DbContext{publicDbSet<User>Users{get;set;}publicDbSet<Role>roles{get;set;}publicDbSet<UserConfig>userConfigs{get;set;}publicDbSet<UserRepository>userRepositorys{get;set;}publicNineskyDbContext():base("DefaultConnection"){Database.CreateIfNotExists();}}提cuowu:模型生成过程中检测到一个或多个验证错误:DAL.UserRepository::EntityType“UserRepository”未定义键。请为该EntityType定义键。userRepositorys:EntityType:EntitySet“userRepositorys”基于未定义任何键的类型“UserRepository”。说明:执行当前Web请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.Data.Entity.ModelConfiguration.ModelValidationException:模型生成过程中检测到一个或多个验证错误:DAL.UserRepository::EntityType“UserRepository”未定义键。请为该EntityType定义键。userRepositorys:EntityType:EntitySet“userRepositorys”基于未定义任何键的类型“UserRepository”。

解决方案

解决方案二:
数据库字段与实体类模型字段不一致?
解决方案三:
这个我在codefirst中遇到过。仔细查看你的关联表,我是有一个外键引用了该表,但是后来数据库删除了主外键关系,而codefirst没有改。所以导致的这个问题。
解决方案四:
您好你的问题现在解决了吗
解决方案五:
引用System.ComponentModel.DataAnnotations命名空间在UserRepository类中找到对应数据库中主键的属性,在头部声明[key]问题解决!

时间: 2024-09-23 11:05:50

大家MVC框架出现 “请为该 EntityType 定义键” 错误的相关文章

基于spring mvc框架的项目访问服务器的时候报以下错误

问题描述 解决方案 解决方案二:你的bean创建失败了,你应该看看它为什么创建失败解决方案三:恩少了几个jar包

Struts VS Spring 两种MVC框架比较

比较 基于Web的MVC framework在J2EE的世界内已是空前繁荣.TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC 框架有Spring MVC.Tapestry.JSF等.这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica.VRaptor等.这些框架都提供了较好的层次分隔能力.在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高. 如何选择

使用Annotations设计一个MVC框架

设计 当设计一个应用程序时, 清晰的分离该程序的不同逻辑组件, 总是被证明是有益的. 同时也存在许多不同的模式来帮助开发者实现这个目标.其中最有名同时也最常用的自然是Model-View-Controller (MVC)了, 它能够将每个应用程序(或者应用程序的一部分)分成三个不同功能的组件,并且定义了把他们联结在一起的规则.Swing本身就是基于这个模式的,而且每个使用Struts,这个流行的开发Web应用框架的人也都了解隐藏在MVC后面的理论. 这篇文章介绍了怎么样通过使用annotatio

对于Struts和Spring两种MVC框架的比较

比较 基于Web的MVC framework在J2EE的世界内已是空前繁荣.TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC框架有Spring MVC.Tapestry.JSF等.这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica.VRaptor等.这些框架都提供了较好的层次分隔能力.在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高. 如何选择一

理解PHP中的MVC编程之MVC框架简介

编程     [什么是MVC?] MVC是一个可以让你把"三个部分(即MVC的全称,Model.View.Controller)"谐调地组成一个复杂应用程序的概念.一辆汽车就是一个在现实生活中非常好的MVC例子.我们看车都看两个View(显示)部分:内部和外部.而这两个都离不开一个Controller(控制者):司机.刹车系统.方向盘和其他操控系统代表了Model(模型):他们从司机(Controller)那里取得控制方法然后应用到内部和外观(View). [网络上的MVC] MVC框

探讨ASP.NET MVC框架内置AJAX支持编程技术

传统型ASP.NET Web Forms是基于同时包含了表现层和后台代码的Web页面, 所以,紧随其后出现的ASP.NET AJAX,特别是这个框架的服务器端控件并没有像 它们本应该的那样光芒四射.于是,很多跟随AJAX时髦的ASP.NET开发者只是向 ASP.NET页面中随意地放置一些UpdatePanel控件以便使其程序实现基本的AJAX支 持.实际上,这只是防止了页面的"闪烁",而根本上页面还是进行 了完整的回发,并且要经历整个页面的生存周期.为了消除ASP.NET Web Fo

为ASP.NET MVC框架添加AJAX支持

一.引言 本文中,我们将向你展示如何在基于ASP.NET MVC框架构建 的ASP.NET应用程序中添加一些基本的Ajax特征(例如局部更新及行为组件等概念 ). [说明]本文向你提供了有关于ASP.NET MVC框架的完整应用源码及 测试示例.在本文方案中,共有两个工程:一个是TaskList(Web应用程序), 另一个是AjaxMVC(一个提供了扩展的Ajax支持的类库).请注意,类库AjaxMVC 中提供的函数实现了一些基本的Ajax功能,例如不依赖于页面回寄的局部更新以 及关联到DOM元

ASP.NET MVC框架

请注意,类库AjaxMVC中提供的函数实现了一些基本的AJAX功能,例如不依赖于页面回寄的局部更新以及关联到DOM元素的类似于ASP.NET AJAX框架中行为(Behavior)的扩展.实际上,最新的ASP.NET MVC框架版本(Preview 4)中就已经提供了现成的Ajax支持功能.所以,你可以把这里提供的功能作为早期ASP.NET MVC框架版本的试验品学习. 构建简单任务列表示例程序 为了简化问题的表面而专注于讨论本文的主题,本文中提供了一个基本的任务列表案例应用程序.尽管此程序非常

用Winform傻瓜式搭建asp.net mvc框架

用Winform傻瓜式搭建asp.net mvc框架--下面是整个项目的文件夹和文件: Default.cs相当于浏览器窗口,通过WebBrowser的SendRequest方法来 请求服务器.服务器接到请求,MyHttpHandler就会接收请求,开始调用相应的 Controller,Control调用Model处理完业务逻辑就,就让View显示执行结果或下 一步操作. 下面从演示和代码来做分析.首先运行浏览器(请大家当它 是浏览器,至少是一个地址栏). 点击Enter按钮,会执行如下代码: