У меня есть рабочий. NET Проект Core 2.2, который я только что обновил. NET Core 3.1
Есть что-то странное с происходящим EntityFrameworkCore, и я не знаю, с чего начать
У меня есть следующая (упрощенная) модель:
public class Asset()
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid Id { get; set; }
public Guid MainImageId{ get; set; }
public Image MainImage { get; set; }
public ICollection<Image> Images { get; set; }
}
public class Image()
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid Id { get; set; }
public Guid AssetId { get; set; }
public Asset Asset { get; set; }
}
Таким образом, актив имеет 1 MainImage.
Это определено в моей модели следующим образом:
modelBuilder.Entity<Image>().HasOne(x => x.Asset).WithMany(x => x.Images).OnDelete(DeleteBehavior.Restrict);
Это определенно работало, пока я не обновился. Теперь каждый раз, когда происходит ВЫБОР в таблице Assets
, он пытается выбрать столбец MainImageId1
, который не существует. Если я попытаюсь AddMigration
, я увижу, что EF Core добавит столбец с именем MainImageId1
и поместит внешний ключ в таблицу Images
.
Я попытался добавить правильное имя столбца к этому свойство, но это также не сработало:
modelBuilder.Entity<Asset>().Property(x => x.MainImageId).HasColumnName("MainImageId");
Кто-нибудь знает, как я могу отладить это дальше? Возможно, что-то не так в моем классе DbContext?