这里有一个非常奇怪的场景。
使用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时成功。但是如果我取下手表就会失败。这让我觉得它与Lazy Loading有关。