Простите, если это дубликат, так как я точно не знаю, как сформулировать вопрос / поиск.
У меня есть две таблицы MS SQL, match и team.
Match
- matchId (PK int)
- homeTeamId (FK int)
- awayTeamId (FK int)
Team
- teamId (PK int)
- Name (nvarchar)
У меня также есть два класса vb.net 'Match' и 'Team'.
Public Class Match
Public Property MatchId As Integer
Public Property HomeTeamId As Integer
Public Property AwayTeamId As Integer
Public Overridable Property AwayTeam As Team
Public Overridable Property HomeTeam As Team
End Class
Public Class Team
Public Property TeamId As Integer
Public Property Name As String
End Class
У меня установлены два отношения, где Team.TeamId связывается с Match.HomeTeamId и Match.AwayTeamId.
Когда я запускаю свое приложение, я получаю исключение (innerException), которое говорит
{"Неверное имя столбца 'AwayTeam_TeamId'.
Неверное имя столбца 'HomeTeam_TeamId'.
Неверное имя столбца 'Team_TeamId'. "}
Я пытался использовать свободный API для сопоставления отношений, но боюсь, что не совсем уверен, как его настроитьтак что я могу получить оба свойства для правильного сопоставления со свойствами в Match.
Используя Fluent API, я смог отобразить одно свойство (HomeTeam), комментируя свойство Match.AwayTeam,но не оба.
modelBuilder.Entity(Of Match)().HasRequired(Function(m) m.HomeTeam).WithMany(Function(t) t.Matches).HasForeignKey(Function(m) m.HomeTeamId)
Как мне настроить это такЕсли класс Match содержит свойства HomeTeam и AwayTeam?
Обновление
Мне удалось заставить это работать со следующим кодом в методе OnModelCreating моего контекста.
Спасибо @Slauma за исправление, касающееся 'WithMany'.
modelBuilder.Entity(Of Match).HasRequired(Function(m) m.HomeTeam).WithMany().Map(Function(t) t.MapKey("HomeTeamId"))
modelBuilder.Entity(Of Match).HasRequired(Function(m) m.AwayTeam).WithMany().Map(Function(t) t.MapKey("AwayTeamId"))