Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
当我尝试通过执行以下行来将Response模型对象保存到数据库中时出现此错误:
Response表中的RequestId列是从Request表中引用的外键。
CreateRequestViewModel是我根据Request模型创建的视图模型,但只有用户填写才能创建Request的字段。
CreateResponseViewModel是我基于Response模型创建的视图模型,但是只有用户填写才能创建Response的字段。
数据库模型是使用以下命令生成的:
我在控制器操作方法中将CreateResponseViewModel对象的值映射到Response模型对象,并尝试保存到数据库中,但出现此错误。我的猜测可能与Entity Framework Core中的级联更新/插入有关,但不知道如何解决。
任何帮助,将不胜感激。谢谢。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
当我尝试通过执行以下行来将Response模型对象保存到数据库中时出现此错误:
_context.Add(response);
await _context.SaveChangesAsync(); <-- Exception happens in here
Response表中的RequestId列是从Request表中引用的外键。
CreateRequestViewModel是我根据Request模型创建的视图模型,但只有用户填写才能创建Request的字段。
CreateResponseViewModel是我基于Response模型创建的视图模型,但是只有用户填写才能创建Response的字段。
数据库模型是使用以下命令生成的:
Scaffold-DbContext "Data Source=localhost;Initial Catalog=Test;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
我在控制器操作方法中将CreateResponseViewModel对象的值映射到Response模型对象,并尝试保存到数据库中,但出现此错误。我的猜测可能与Entity Framework Core中的级联更新/插入有关,但不知道如何解决。
任何帮助,将不胜感激。谢谢。
最佳答案
一般来说,当您的实体与数据库不同步时,就会发生该错误。基于您的实体类的当前状态,实体框架认为应该有一个名为CreateRequestViewModelRequestId
的列,但该列实际上不存在于表中。简短的答案是您需要运行迁移以更新数据库。
但是,目前尚不清楚您在这里做什么,并且类名末尾的ViewModel
都不应进入数据库。我想您这里还有许多更深层次的问题需要解决。
关于c - SqlException:无效的列名称'CreateRequestViewModelRequestId',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48347192/
10-15 16:42