Edmx需要Primary_Key吗?

Co.*_*den 6 .net entity-framework primary-key edmx

这是一个问题在.net中创建Edmx时,在创建DataBase的Edmx时,只添加那些具有主键的表和视图.
这个问题很容易解决,但只是在表或视图中制作列主键,但我没有得到它为什么必要的实际原因?
任何人都可以解释背后的原因吗?

Wil*_*oyd 2

实体框架需要一个主键来正确地将一条数据标识为在特定数据集中唯一的。这取决于它如何在内部查找实体并为您提供尽可能最佳的性能。

例如,实体框架的功能之一是更改跟踪,它将添加、删除、修改和未更改实体的集合保存在定义为Dictionary<EntityKey, EntityEntry>. 为了能够有效地处理这些集合,它需要一个密钥来及时对这些集合执行必要的 CRUD 操作,因此,它需要该密钥。

更新

还有一个无键对象的集合,但它被定义Dictionary<object, EntityEntry>为查找性能非常糟糕,因为需要对键进行强制转换(如果键是值类型,则将其拆箱)才能使用。