.net - Context.SaveChanges() 抛出 SqlException:无效的对象名称
问题描述
我正在为使用 Entity Framework 访问 SQL Server 数据库的应用程序创建一个管理门户。我无法弄清楚为什么会发生此异常,因为触发此异常的方法与异常中显示的对象无关。问题出在我的 AuthorizeStaff 方法中。它执行得很好,但是当我尝试将更改保存到数据库时会触发异常。这是我的代码:
public async Task<IActionResult> AuthorizeStaff(int staffId, int schoolId)
{
var school = _context.Schools.SingleOrDefault(x => x.Id == schoolId);
var requested = JsonConvert.DeserializeObject<List<Staff>>(school.RequestedStaff);
var staff = requested.Single(x => x.Id == staffId);
List<Staff> staffList = school.StaffList;
staffList.Add(staff);
school.Staff = JsonConvert.SerializeObject(staffList);
requested.Remove(staff);
school.RequestedStaff = JsonConvert.SerializeObject(requested);
await _context.SaveChangesAsync();
return Content("The staff member was authorized succesfully");
}
这是我的DbContext
课:
public class HallPassContext : DbContext
{
public HallPassContext(DbContextOptions<HallPassContext> options) : base(options) { }
public DbSet<School> Schools { get; set; }
public override int SaveChanges()
{
return base.SaveChanges();
}
}
我完全被难住了,因为我对 Entity Framework 的经验并不丰富,而且我上面的代码都没有涉及对象“Pass”。
这是错误:
System.Data.SqlClient.SqlException (0x80131904):无效的对象名称“通过”。
在 System.Data.SqlClient.SqlCommand.<>c.b__122_0(Task 2.InnerInvoke() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) 堆栈跟踪从之前抛出异常的位置结束
1 result)
at System.Threading.Tasks.ContinuationResultTaskFromResultTask在 System.Threading.Tasks.Task.ExecuteWithThreadLocal(任务和 currentTaskSlot)
从先前引发异常的位置结束堆栈跟踪 --- 在 Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch 的 Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch 的 Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteAsync(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues, CancellationToken cancelToken)。 ExecuteAsync(IRelationalConnection connection, CancellationToken cancelToken) ClientConnectionId:61782dfe-2603-4360-bb7e-50b2c475910b 错误号:208,State:1,Class:16
任何帮助都会很棒,谢谢!
解决方案
推荐阅读
- kettle - PDI - 如何跳过已经处理的文件?
- sql - Oracle 正则表达式中的 ?= 等价于什么
- javascript - 如何使用 Highcharts 向 3D 散点图添加图例?
- asp.net - 注册新用户 - 缺少构造函数消息
- asp.net-boilerplate - 测试失败 asp.net 样板。Abp.AbpException : 没有权限名称: Pages.Users
- javascript - 事件处理程序单击而不是选择
- android - 使用房间架构为嵌套的 JSON 对象创建表
- json - 从 WCF 服务返回 JSON
- lucene - 在 sitecore 中搜索没有演示详细信息的项目
- node.js - 哪些版本的 npm 带有哪些版本的 node?