错误消息:“存储更新、插入或删除语句影响了意外数量的行 (0)。自加载实体以来,实体可能已被修改或删除。刷新 ObjectStateManager 条目。”
大家好,
我在 MVC 和 EF 中使用 SQL 紧凑型数据库创建了 Code First TPH(Table Per Hierarchy)。
这是类图/层次结构:
Client 和 SalesRep 都继承了 BaseUser 类。密钥是“UserID”,它是用数据注释编码的[Key]
(我知道“ID”也应该设置它)
这就是我所在的位置:我可以用一些条目为数据库播种。当我尝试在播种方法中设置“用户ID”时,它似乎忽略了它,只是按数字顺序应用用户ID......(对我来说似乎没问题?)
此外,这是我的 DbContext
public class SiteDB:DbContext
{
public DbSet<BaseUser> AllUsers { get; set; }//enable TPH
public DbSet<SalesRep> SalesReps { get; set; }
public DbSet<Client> Clients { get; set; }
}
下一个,
我为 Clients -> ClientsController 创建了一个具有强类型 Razor 视图的控制器。有了这个。我现在有一个客户的 CRUD。我可以毫无问题地创建新客户端,但是当我尝试编辑客户端条目时,我收到上述错误消息。
我确实注意到了一些有趣的事情,我单步执行了代码,并且错误发生在 db.SaveChanges();
当客户端被传回 ActionResult Edit 方法时,UserID=0!奇怪吗?我不确定这是一个错误还是导致此问题的实际问题。
感谢您对此提供的帮助。谢谢!