Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? 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