私のプロジェクトには、識別関係を実際に使用する必要があるいくつかのモデルがありますが、速度と単純さの理由から、一意の自動インクリメント主キーを使用してそれらをセットアップしています。たとえば、連絡先の電子メール アドレス:
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
このセットアップについて 2 つの質問があります。
- 複合キー内にフィールドを持つと
nvarchar
、DB を使用しないことを正当化するのに十分なほど DB の速度が低下しますか? - 1 に「はい」の場合、(データ注釈または Fluent API のいずれかで) これが実際には人工的な主キーとの識別関係であることを EF に通知し、利点を享受する方法はありますか(見出し「識別および非識別に関する考慮事項」の下)関係」)?