gpt4 book ai didi

c - SQLException : Invalid column name 'CreateRequestViewModelRequestId'

转载 作者:行者123 更新时间:2023-11-30 19:06:18 28 4
gpt4 key购买 nike

当我尝试通过执行以下行将响应模型对象保存到数据库中时,出现此错误:

_context.Add(response);
await _context.SaveChangesAsync(); <-- Exception happens in here

响应表中的RequestId列是从请求表引用的外键。

CreateRequestViewModel是我基于请求模型创建的 View 模型,但只有用户创建请求时需要填写的字段。

CreateResponseViewModel 是我基于响应模型创建的 View 模型,但只有用户创建响应时需要填写的字段。

数据库模型是使用命令生成的:

Scaffold-DbContext "Data Source=localhost;Initial Catalog=Test;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

我将 CreateResponseViewModel 对象的值映射到 Controller 操作方法中的响应模型对象,并尝试保存到数据库中,但出现此错误。我猜测这可能与 Entity Framework Core 中的级联更新/插入有关,但不知道如何修复它。

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

一般来说,当您的实体与数据库不同步时,就会发生该错误。根据实体类的当前状态, Entity Framework 认为应该有一个名为 CreateRequestViewModelRequestId 的列,但该列实际上并不存在于表中。简而言之,您需要运行迁移来更新数据库。

但是,您在这里所做的事情根本不清楚,并且类名末尾带有 ViewModel 的任何内容都不应该进入您的数据库。我想您这里还有更深层次的问题需要解决。

关于c - SQLException : Invalid column name 'CreateRequestViewModelRequestId' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48347192/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com