Доброе время суток всем, прошу прощение чье время отнимаю. Суть в том, что после того, как добавил метки в EF Core и проапдейтил базу, я не могу добавить в базу, из-за этой ошибки:
InvalidOperationException: The property 'MarkId' on entity type 'GameMarks' has a temporary value
Как я могу пофиксить это?
public class Game
{
public int GameId { get; set; }
public string Name { get; set; }
public string Ganre { get; set; }
public string Description { get; set; }
public string Date { get; set; }
public string File { get; set; }
public virtual ICollection<GameMarks> GameMarks{ get; set; }
public string PathGooglePlay { get; set; }
}
public class Marks
{
[Key]
public int MarkId { get; set; }
public string Name { get; set; }
public virtual ICollection<GameMarks> GameMarks { get; set; }
}
public class GameMarks
{
public int GameId { get; set; }
public Game Games { get; set; }
public int MarkId { get; set; }
public Marks Marks { get; set; }
}
public class GameContext : DbContext
{
public GameContext(DbContextOptions<GameContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<GameMarks>()
.HasKey(pc => new { pc.GameId, pc.MarkId });
modelBuilder.Entity<GameMarks>()
.HasOne(pc => pc.Games)
.WithMany(p => p.GameMarks)
.HasForeignKey(pc => pc.GameId);
modelBuilder.Entity<GameMarks>()
.HasOne(pc => pc.Marks)
.WithMany(c => c.GameMarks)
.HasForeignKey(pc => pc.MarkId);
}
public DbSet<Game> Games { get; set; }
}
public async Task PostGame([FromBody] Game game)
{
game.Date = DateTime.Now.ToString();
_context.Games.Add(game);
await _context.SaveChangesAsync();
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости