[Key] 属性是否强制 C# 通过装饰属性比较实体?

Does [Key] attribute force C# to compare entities by decorated properties?

    public class Potato
    {

        int SomeID { get; set; }
        DataTable Potable { get; set; }
        [Key]
        string PotatoKey { get; set; }
        object GrimReaper { get; set; }
    }

当比较 2 个土豆时,具有 [Key] 属性是否告诉 C# 为了进行比较只需要比较 PotatoKey?还是我仍然需要明确告诉比较 PotatoKeys?

[Key] 本身几乎什么都没有;它需要其他代码(通常是库代码)来检查它是否存在,并推断出一些特殊的含义——大概是在由某些 ORM 处理时“将其视为主键”。它不会更改 C# 编译器或 .NET 运行时的任何部分 除了 明确检查它的那些部分。例如,它不会改变对象相等或比较的工作方式。只有极少数属性直接影响代码的行为方式。