Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >执行WebAPI控制器时未反映对EntityFramework 6模型的更新

执行WebAPI控制器时未反映对EntityFramework 6模型的更新
EN

Stack Overflow用户
提问于 2015-02-05 22:42:59
回答 1查看 434关注 0票数 0

我已将数据库视图添加到SQL Server 2012。之后,我更新了我的EntityFramework (v6)模型,构建并验证了它。从ASP.Net WebAPI (v2)项目中,我删除并添加了引用我的EntityFramework库,以确保我引用的是这个最新的更新。控制器具有指向上下文和EF模型类的所有正确链接。在引用我通过此GET方法进行的更新时没有错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public IEnumerable<RTV_DedicationComments> Get(int EntryNum)
    {
        //var query = from c in context.RTV_GetAllDedicationsNames orderby c.DedicationName where c.DedicationName.StartsWith(Name) select c;
        var query = context.RTV_DedicationComments
                            .Where(d => d.EntryNumber == EntryNum)
                            .OrderBy(d => d.EntryNumber)
                            .Select(d => d);

        var results = query.ToList();

        return results;
    }

在运行时,内部异常返回以下错误:{“列名‘PlatEntryNumber’无效。\r\n由于绑定错误,无法使用视图或函数'dbo.RTV_DedicationComments‘。”}执行查询时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 var results = query.ToList();

'PlatEntryNumber‘在更新之前来自数据库和EF模型,但它已被删除,并且不会在控制器中显示为来自dbcontext的字段。

我打开SQL Server事件探查器以查看查询是否在那里执行,它确实执行了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exec sp_executesql N'SELECT 
[Project1].[EntryNumber] AS [EntryNumber], 
[Project1].[CommentDate] AS [CommentDate], 
[Project1].[Comment] AS [Comment], 
[Project1].[CommentBy] AS [CommentBy]
FROM ( SELECT 
    [Extent1].[EntryNumber] AS [EntryNumber], 
    [Extent1].[CommentDate] AS [CommentDate], 
    [Extent1].[Comment] AS [Comment], 
    [Extent1].[CommentBy] AS [CommentBy]
    FROM (SELECT 
[RTV_DedicationComments].[EntryNumber] AS [EntryNumber], 
[RTV_DedicationComments].[CommentDate] AS [CommentDate], 
[RTV_DedicationComments].[Comment] AS [Comment], 
[RTV_DedicationComments].[CommentBy] AS [CommentBy]
FROM [dbo].[RTV_DedicationComments] AS [RTV_DedicationComments]) AS [Extent1]
    WHERE ([Extent1].[EntryNumber] = @p__linq__0) AND (@p__linq__0 IS NOT NULL)
)  AS [Project1]
ORDER BY [Project1].[EntryNumber] ASC',N'@p__linq__0 int',@p__linq__0=5943651

我还可以检查什么来删除WebAPI和EF之间的这些数据库对象引用的残留物?

下面是整个堆栈跟踪:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
System.Data.Entity.Core.EntityCommandExecutionException was unhandled by user code
  HResult=-2146232004
  Message=An error occurred while executing the command definition. See the inner exception for details.
  Source=EntityFramework
  StackTrace:
       at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
       at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
       at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClassb.<GetResults>b__a()
       at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
       at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClassb.<GetResults>b__9()
       at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
       at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
       at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
       at System.Lazy`1.CreateValue()
       at System.Lazy`1.LazyInitValue()
       at System.Lazy`1.get_Value()
       at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at RecWebAPI.Controllers.RTV_GetDedicationCommentsController.Get(Int32 PlatEntryNum) in e:\Development Test\RecTaxWebSLN3\RecWebAPI3\Controllers\RTV_GetDedicationCommentsController.cs:line 43
       at lambda_method(Closure , Object , Object[] )
       at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
       at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
       at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
  InnerException: System.Data.SqlClient.SqlException
       HResult=-2146232060
       Message=Invalid column name 'PlatEntryNumber'.
Could not use view or function 'dbo.RTV_DedicationComments' because of binding errors.
       Source=.Net SqlClient Data Provider
       ErrorCode=-2146232060
       Class=16
       LineNumber=3
       Number=207
       Procedure=RTV_DedicationComments
       Server=mysqlserver
       State=1
       StackTrace:
            at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
            at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
            at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
            at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
            at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
            at System.Data.SqlClient.SqlDataReader.get_MetaData()
            at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
            at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
            at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
            at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
            at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
            at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
            at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
            at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<>c__DisplayClassb.<Reader>b__8()
            at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TInterceptionContext,TResult](Func`1 operation, TInterceptionContext interceptionContext, Action`1 executing, Action`1 executed)
            at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
            at System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(CommandBehavior behavior)
            at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
            at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
       InnerException: 
EN

回答 1

Stack Overflow用户

发布于 2015-02-09 15:51:56

问题出在我的WebAPI web.config文件上。有一个指向旧数据库的标签。这让我有些困惑,因为我认为EF处理了所有到数据库的连接,因此不需要WebAPI拥有数据库信息。它现在起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28355475

复制
相关文章
从 WebAPI Beta 更新到WebAPI RC
The official word on changes from Beta to RC for Web API-related topics (filtered from the original page). ASP.NET Web API now uses Json.NET for JSON formatting: The default JSON formatter in ASP.NET Web API now uses Json.NET for JSON serialization. Json.N
张善友
2018/01/29
1.2K0
从 WebAPI Beta 更新到WebAPI RC
CTFSHOW刷题之旅--命令执行[29-77,118-124](未更新完)
这里匹配了flag|system|php这三个字符串且不分大小写。payload还是可以用web29的
YanXia
2023/04/07
7.4K0
CTFSHOW刷题之旅--命令执行[29-77,118-124](未更新完)
EntityFramework数据持久化复习资料6、EntityFramework引入
EntityFramework数据持久化复习资料3、EntityFramework引入
红目香薰
2023/03/27
5400
EntityFramework数据持久化复习资料6、EntityFramework引入
EntityFramework Core 自动绑定模型映射
笔者最近在和同事共同开发项目时,需要从他们提供的包含数据库实体类型的类库中读取实体信息绑定到自己的项目中(但是都在同一个解决方案里),所以很直接的一种方式就是把项目中所有的实体都以 public DbSet<Blog> Blogs { get; set; } 的形式加入到自己的 Context 中,但是这显然十分麻烦,而且如果又新增或减少了实体,每次又得在Context中做修改。 先放上示例的两个实体,假设它们都处于Synyi.EntityDemo这个项目类库中。其实IEntity是一个空接口,起指示作用。
潘成涛
2018/01/18
1.1K0
EntityFramework Core 自动绑定模型映射
笔者最近在和同事共同开发项目时,需要从他们提供的包含数据库实体类型的类库中读取实体信息绑定到自己的项目中(但是都在同一个解决方案里),所以很直接的一种方式就是把项目中所有的实体都以 public DbSet<Blog> Blogs { get; set; } 的形式加入到自己的 Context 中,但是这显然十分麻烦,而且如果又新增或减少了实体,每次又得在Context中做修改。 先放上示例的两个实体,假设它们都处于Synyi.EntityDemo这个项目类库中。其实IEntity是一个空接口,起指示作用。
潘成涛
2018/07/09
1.2K0
MVC4+WebApi+Redis Session共享练习(上)
这几天生病了,也没有心情写博客,北京医院真心伤不起呀,钱不少花,病没治好,还增加了新病,哎不说了,周末还得去大医院检查一下,趁女盆友还没有回来,把前几天写的东西总结一下。本文也会接触一点webApi的东东,自己最近也一直在看,算是入门了吧。本文用到的知识点有MVC4、knockout.js、EntityFramework、WebApi、Redis缓存及基于Redis缓存的Session共享,都是很基础的操作,MVC我会介绍过滤器及错误捕捉,EntityFramework增删改数据,WebApi做为数据通信以及Redis的基本缓存操作等。
写代码的猿
2019/04/11
7980
MVC4+WebApi+Redis Session共享练习(上)
homebrew禁止执行install命令时自动更新
Homebrew 是 macOS 下的默认的包管理器,不需要sudo权限就可以安装包,比较好用。
王云峰
2023/10/23
5330
React报错之无法在未挂载的组件上执行React状态更新
原文链接:https://bobbyhadz.com/blog/react-cant-perform-react-state-update-on-unmounted-component[1]
chuckQu
2022/08/19
2.3K0
Docker API未授权命令执行
Docker Swarm是Docker的集群管理工具,它将Docker主机池转变为单个虚拟Docker主机,能够方便的进行docker集群的管理和扩展。Docker Swarm使用标准的Docker API通过2375端口来管理每个Docker节点,Docker API是一个取代远程命令行界面(RCLI)的REST API。当Docker节点的2375端口直接暴露并未做权限检查时,存在未授权访问漏洞,攻击者可以利用Docker API执行任何操作,包括执行Docker命令,创建、删除Docker以及获得宿主机权限等。
谢公子
2023/09/01
1.3K0
Docker API未授权命令执行
基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints
FastEndpoints 是一个基于 .NET 6 开发的开源 webapi 框架,它可以很好地替代 .NET Minimal APIs 和 MVC ,专门为开发效率而生,带来了全新的开发模式和编码体验。
全球技术精选
2022/09/05
9070
基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints
winform 窗口未创建数据更新
this窗口未创建前,不允许使用invoke,可以使用invokerequire避免抛出异常
sofu456
2020/03/18
1.7K0
训练机器学习模型时应避免的 6 个错误
对人工智能模型进行训练的同时,还需要进行多阶段任务,以充分利用训练数据,获得满意的结果。为了保证人工智能模型的性能,本文列出了六个需要避免的常见错误。
深度学习与Python
2021/06/08
9410
Vue视图未更新再次踩坑
今天遇到一个Vue数据更新了,但是视图未更新的问题,折腾了我2小时才搞定,有必要记录下来,防止日后再次踩坑。
Daotin
2021/01/07
1.1K0
EntityFramework快速上手
什么是Entity Framework 微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。开发人员使用Linq语言,对数据库操作如同操作Object对象一样省事。 EF有三种使用场景: 从数据库生成Class, 由实体类生成数据库表结构, 通过数据库可视化设计器设计数据库,同时生成实体类。 O/RM是什么? ORM 是将数据存储从域对象自动映射到关系型数据库的工具。ORM主要包括3个部分:域对象、
李郑
2018/03/01
1.9K0
EntityFramework快速上手
EntityFramework附加实体
//0.0创建修改的 实体对象 Models.BlogArticle model = new BlogArticle(); model.AId = 12; model.ATitle = "新的数据"; model.AContent = "新的数据~~~~~"; //0.1添加到EF管理容器中,并获取 实体对象 的伪包装类对象 DbEntityEntry<Models.BlogArticle> entry = db.Entry<Models.BlogArticle>(model); //**如果使用 En
liulun
2018/01/12
7570
GoTTY 未授权远程命令执行漏洞
GoTTY 是一个简单的基于 Go 语言的命令行工具,它可以将终端(TTY)作为 Web 程序共享。GoTTY 的架构是基于 Hterm + Web Socket 的,它能在 Web 浏览器上运行一个基于 Java 的终端,并支持通过 HTTP 和 HTTPS 访问。当 GoTTY 未正确配置身份验证启动时,任意用户可通过 GoTTY 程序的 Web 页面未授权远程命令执行。
LuckySec
2022/11/02
1.4K0
GoTTY 未授权远程命令执行漏洞
Confluence 6 找到未使用的空间 原
有时候,你希望找到你系统中没有使用的内容。有时候你也希望能够对这些内容进行更多的关注,但是如何找到一些有关长期不更新的页面,或者长期不使用的空间?
HoneyMoose
2019/01/31
8200
webapi 在POST时的坑以及OracleCommand的参数绑定的坑
  post函数即使执行,但永远返回null 。(在我这请求时,还必须把Post的action的名称也加上,才执行)
申君健
2018/09/21
6960
基于EntityFramework 6 Code First实现多租户的一种思路
公司原本有一个“xx系统”,ORM使用EntityFramework,Code First模式。该系统是针对某个客户企业的,现要求该系统支持多个企业使用,但是又不能给每个企业部署一份(难以维护),只能想办法从代码层面去解决这个问题。
xhznl
2020/08/14
5930
EntityFramework经典的left join语法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116076.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
3170

相似问题

EntityFramework + ASP WebAPI + SelfReference模型

10

更新模型以反映对其他模型的更改

10

WebApi CustomModelBinder未对模型属性执行验证

10

EntityFramework更新部分模型

20

未反映对SolrConfig.xml文件的更新

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文