当前位置: 首页 > 编程语言 > C#

实体类型不是当前上下文模型共享的一部分

时间:2023-04-11 00:52:00 C#

实体类型不是当前上下文模型的一部分长引语我已经研究这个问题几天了。我正在尝试使用VisualStudio2010MVC2EF6.0创建数据库连接。我可以使用服务器资源管理器连接到数据库。到目前为止,这是我所做的:创建了一个模型:ModelEntities.edmx(连接到SQLServer数据库)2.为我尝试访问的表创建了一个模型:Table.cs(包含所有公共成员)公共类Quickfix{publicintFIX_ID{得到;放;}公共字符串名称{得到;放;}公共字符串类型{得到;放;}publicstringDESCRIPTION{得到;放;创建一个DAL文件夹并将其上下文添加到其中:(ModelEntitesContext.cs)使用ServiceDesk_Solution.Models;命名空间ServiceDesk_Solution.DAL{publicclassModelEntitiesContext:DbContext{publicModelEntitiesContext():base("ModelEntities"){}publicDbSetQuickfixes{get;我的视图创建了一个控制器:(称之为我的控制器DBController.cs)publicclassDBController:Controller{////GET:/DB/ModelEntitiesContextdb=newModelEntitiesContext();ModelEntitiesdb=newModelEntities();publicActionResultDB(){returnView(db.Quickfix.ToList(););最后,我使用我的模型(DB.aspx)ModelEntities.Quickfix创建一个强大的视图,这是当我得到上下文错误时(请参阅下面的错误和堆栈跟踪)我的配置文件:添加名称=“ModelEntities”connectionString="元数据=资源:///模型.CSCEntities.csdl|res:///Models.ModelEntities.ssdl|res://*/Models.ModelEntities.msl;provider=System.Data.SqlClient;providerconnectionstring="datasource=devsql;initialcatalog=Model;persistsecurityinfo=True;userid=user;password=password;multipleactiveresultsets=TRUE;App=EntityFramework""providerName="System.Data.EntityClient"不再errors错误消息:实体类型Quickfix不是当前上下文模型的一部分。描述:执行当前Web请求期间发生未处理的异常请查看堆栈跟踪以获取有关错误及其来源的更多信息在您的代码中。异常详细信息:System.InvalidOperationException:实体类型Quickfix不是当前上下文模型的一部分。源错误:第14行:publicActionResultDB()第15行:{第16行:db.Quickfix.ToList();第17行:返回View();第18行:}源文件:***_SolutionControllersDBController.cs行:16堆栈跟踪:[InvalidOperationException:实体类型Quickfix不是当前上下文模型的一部分。]System.Data.Entity.Internal.InternalContext.UpdateEntitySetMappingsForType(类型entityType)+191System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(TypeentityType)+46System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()+125System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()+33System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()+100System.Collections.Generic.List`1..ctor(IEnumerable`1个集合)+315System.Linq.Enumerable.ToList(IEnumerable`1来源)+58***_SolutionServiceDesk_SolutionControllersDB中的ServiceDesk_Solution.Controllers.DBController.DB()Controller.cs:16lambda_method(Closure,ControllerBase,Object[])+96System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBasecontroller,Object[]parameters)+51System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContextcontrollerContext,IDictionary`2参数)+409System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContextcontrollerContext,ActionDescriptoractionDescriptor,IDictionary`2参数)+52System.Web.Mvc.c__DisplayClassd.b__a()+127System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilterfilter,ActionExecutingContextpreContext,Func`1continuation)+436System.Web.Mvc.c__DisplayClassf.b__c()+61System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContextcontrollerContext,IList`1过滤器,ActionDescriptoractionDescriptor,IDictionary`2参数)+305System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContextcontrollerContext,字符串actionName)+830System.Web.Mvc.Controller.ExecuteCore()+136System.Web.Mvc.ControllerBase.Execute(RequestContextrequestContext)+111System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContextrequestContext)+39System.Web.Mvc.c__DisplayClass8.b__4()+65System.Web.Mvc.Async.c__DisplayClass1.b__0()+44System.Web.Mvc.Async.c__DisplayClass8`1.b__7(IAsyncResult_)+42System.Web.Mvc.Async.WrappedAsyncResult`1.End()+141System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResultasyncResult,对象标签)+54System.Web.Mvc.Async.AsyncResultWrapper。End(IAsyncResultasyncResult,对象标签)+40System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResultasyncResult)+52System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult结果)+38System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+8981789System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,Boolean&completedSynchronously)+184-----------------------------------------------------------------------------版本信息:Microsoft.NETFramework版本:4.0.30319;ASP。NET版本:4.0.30319.272所以我想出了问题所在本教程要求创建所有这些不需要的额外类。基本上,要使实体框架正常工作,您需要做的就是创建模型,然后在控制器中创建对象。其他一切都在实体模型中,所以当错误显示为:“Quickfix不是模型的一部分”时,这是真的,因为我根据教程创建了一个额外的同名类。当我使用Quickfix上下文创建强视图时,它会爆炸,因为它试图关联模型中不存在的类。因此,通过删除所有额外的DAL和模型上下文,使用强视图菜单中显示的Entity.context创建我的视图都可以正常工作。希望这可以帮助与我有同样问题的人。以上是C#学习教程:实体类型不是当前上下文模型的一部分。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: