Person имеет две одинаковые таблицы, разница в том, что у каждого человека есть только одна запись в таблице PersonPreference, но может быть много в таблице PersonRoles. PersonPreference и PersonRole имеют одинаковый первичный и внешний ключ (Person_ID):
<Table("Person")> _
Public Class Person
<Key()> _
Public Property Person_ID As Integer
Public Property Name As String
Public Overridable Property PersonPreference As PersonPreference
Public Overridable Property PersonRoles As ObservableCollection(Of PersonRole)
End Class
<Table("PersonPreference")> _
Public Class PersonPreference
<Key()> _
Public Property Person_ID As Integer
Public Property Car As String
Public Property Color As String
End Class
<Table("PersonRole")> _
Public Class PersonRole
<Key()> _
Public Property Person_ID As Integer
Public Property Role As String
End Class
Public Class PersonMap
Inherits EntityTypeConfiguration(Of Person)
Public Sub New()
Me.HasRequired(Function(t) t.PersonPreference).WithRequiredPrincipal()
Me.HasRequired(Function(t) t.PersonRoles).WithRequiredPrincipal()
End Sub
End Class
Есть ли способ сохранить роли человека в виде кода (без добавления таблицы ролей) или необходимо внести изменения (первичный ключ в таблице PersonRoles - я попытался создать составной ключ в таблице PersonRoles, но это не помогло не работает)?