这里有一个非常奇怪的场景。
使用 DBContext 调用以下代码删除失败
int id = 5;
var sql = "SELECT * from dbo.Product WHERE productId = @id";
var data = dbContext.Set<Product>().SqlQuery(sql, new object[] {new SQLParameter("id", id)});
var entityToDelete = data.AsQueryable().FirstOrDefault();
dbContext.Set<Product>().Remove(entityToDelete);
dbContext.SaveChanges();
我收到以下错误消息:
“MyEntities.Products”中的实体参与“FK_Product_ProductType”关系。找到 0 个相关的“ProductType”。1 'ProductType' 是预期的。
现在每个产品都有一个对 ProductType 的外键引用。数据库中实际上为此外键设置了一个值。
这是踢球者。当我逐行调试并进入代码时,它成功了吗?很奇怪?为什么会这样?有任何想法吗?
更新
当我在调试时观察变量 entityToDelete 时,它成功了。但是如果我取下手表就会失败。这让我觉得这与延迟加载有关。