问题在.net中创建Edmx时,在创建DataBase的Edmx时,只会添加具有主键的表和视图。
这个问题很容易解决,但只是在表或视图中制作列主键,但我没有得到必要的实际原因??
任何人都可以解释其背后的原因吗?
答案 0 :(得分:2)
实体框架需要一个主键才能在一组特定数据中正确识别一段数据。它归结为它如何在内部查找实体并为您提供最佳性能。
例如,实体框架的一个功能是更改跟踪,它在一系列定义为Dictionary<EntityKey, EntityEntry>
的集合中保留已添加,已删除,已修改和未更改实体的集合。为了能够有效地处理这些集合,它需要一个密钥来及时地对这些集合执行必要的CRUD操作,因此,它需要该密钥。
<强>更新强>:
还有一个无密钥对象的集合,但是它被定义为Dictionary<object, EntityEntry>
,它对于查找具有可怕的性能,因为密钥需要被转换(或者如果密钥是值类型,则为空盒子)可以使用。