当删除具有 [Required] 关联的实体时,该关联的值也会在 DELETE SQL 语句中发送,就好像它是 [ConcurrencyCheck]:
exec sp_executesql N'delete [dbo].[Project] where ((([ProjectId] = @0) and ([Customer_CustomerId] = @1))',N'@0 int,@1 int',@0=1,@1=1
为什么做出这个决定?在我看来,这没有任何意义。当我们不知道所有必需关联的键时,这有效地防止了通过 id 删除分离的实体。