1

这里有一个非常奇怪的场景。

使用 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 时,它​​成功了。但是如果我取下手表就会失败。这让我觉得这与延迟加载有关。

4

0 回答 0