Entity framework 更新实体也会更新另一个实体

Entity framework 更新实体也会更新另一个实体,entity-framework,Entity Framework,我有一个表,它的PK由两列(ID和PK2)组成。 下面的代码给出了两个不同的实体。 但是当我改变其中一个的时候,另一个也改变了 var entity1 = _database.TABLE.SingleOrDefault(s => s.ID == entity.Id && s.PK2 != 100); var entity2 = _database.TABLE.SingleOrDefault(s => s.ID == entity.Id && s.PK2

我有一个表,它的PK由两列(ID和PK2)组成。 下面的代码给出了两个不同的实体。 但是当我改变其中一个的时候,另一个也改变了

var entity1 = _database.TABLE.SingleOrDefault(s => s.ID == entity.Id && s.PK2 != 100);
var entity2 = _database.TABLE.SingleOrDefault(s => s.ID == entity.Id && s.PK2 == 100);
entity1.Name = "ABCD"; // entity2.Name is also set to "ABCD".
我很想知道为什么会发生这种情况,我能阻止它吗

EF在使用2列PK时有问题吗


谢谢。

EF在使用2列PK时没有问题。在代码中,您需要修改表中的多个条目。数据库不知道当一个条目被修改时,另一个条目也应该被修改。您需要自己实现它,以连接这些条目之间的关系。我只希望更新其中一个实体。我的问题是,出于某种原因,它们都被更新了。这就是对象entity1和entity2,在我保存更改之前。我认为您需要调试它。也许您可以通过以下方式跟踪这些修改的条目。很抱歉,误解了您的问题。这两列都是“真正的”主键吗?即:数据库主键是否由两列组成?或者您是否只将它们映射为EF模型中的主键?