我的项目中有几个模型确实应该使用识别关系,但是出于速度和简单性的原因,我将它们设置为具有唯一的自动增量主键。例如,联系人中的电子邮件地址:
Public Class EmailAddress
'This is currently the primary key
Public Property EmailAddressID As Integer
'These three properties really make a composite primary key in an identifying relationship with contacts
Public Property ContactID As Integer
Public Property Address As String
Public Property Domain As String
End Class
我对此设置有两个问题:
- 在复合键中包含字段是否
nvarchar
真的会减慢数据库的速度,足以保证不使用它(因为我被引导相信学校)? - 如果是 1,有没有办法(在数据注释或 Fluent API 中)通知 EF 这实际上是与人工主键的识别关系,从而获得好处(在标题“识别和非识别的注意事项”下关系”)?