在 .net 中创建 Edmx 时,在创建数据库的 Edmx 时,仅添加具有主键的表和视图,这是一个问题。
这个问题很容易解决,但只需在表或视图中创建列主键,但我不知道为什么有必要?
谁能解释一下其背后的原因吗?
实体框架需要一个主键来正确地将一条数据标识为在特定数据集中唯一的。这取决于它如何在内部查找实体并为您提供尽可能最佳的性能。
例如,实体框架的功能之一是更改跟踪,它将添加、删除、修改和未更改实体的集合保存在一系列定义为的集合中Dictionary<EntityKey, EntityEntry>
。为了能够有效地处理这些集合,它需要一个密钥来及时对这些集合执行必要的 CRUD 操作,因此,它需要该密钥。
Update:
还有一个无键对象的集合,但它的定义为Dictionary<object, EntityEntry>
它的查找性能非常糟糕,因为需要对键进行强制转换(如果键是值类型则将其拆箱)才能使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)