Я использую Entity Framework Core 3.1 и пытаюсь справиться с простым сценарием: в спортивной лиге много игр, но я хочу работать с отложенными играми. Это моя модель:
public class Game
{
public int GameId { get; set; }
public DateTime StartTime { get; set; }
public int HomeTeamId { get; set; }
public int AwayTeamId { get; set; }
public int? PostponedGameId { get; set; } // Original game that didn't happened and was postponed to 'this' game.
public Team HomeTeam { get; set; }
public Team AwayTeam { get; set; }
public Game PostponedGame { get; set; }
}
Очевидно, что для большинства игр PostponedGameId
будет нулевым.
Как мне создать fluent API
, который будет генерировать обнуляемый FK (PostponedGameId)?
РЕДАКТИРОВАТЬ:
Это то, что я до сих пор :
modelBuilder.Entity<Game>()
.HasOne<Game>(g => g.PostponedGame)
.WithOne()
.OnDelete(DeleteBehavior.Cascade);
Но я не знаю, как сказать, что PostponedGameId
- это внешний ключ. Я даже не уверен, что это правильно, потому что я не запускал его без указания внешнего ключа.