Я обновил плагин с .NET Framework 4.6.1 до .NET Core 2.1 и у меня возникли проблемы с отображением EF.
У меня есть класс в 4.6.1, который расширяет базовый класс Picture:
public partial class PictureExt : Picture
{
public virtual string ExternalUrl { get; set; }
}
базовый класс:
public partial class Picture : BaseEntity
{
public string MimeType { get; set; }
public string SeoFilename { get; set; }
public string AltAttribute { get; set; }
public string TitleAttribute { get; set; }
public bool IsNew { get; set; }
public virtual PictureBinary PictureBinary { get; set; }
}
и в 4.6.1 я сделал отображение:
public PictureMap()
{
this.ToTable("Picture");
this.HasKey(p => p.Id);
this.Property(p => p.PictureBinary).IsMaxLength();
this.Property(p => p.MimeType).IsRequired().HasMaxLength(40);
this.Property(p => p.SeoFilename).HasMaxLength(300);
this.Property(p => p.ExternalUrl).IsOptional();
}
и все отлично работает
, но в .NET Core EFЯ сделал отображение:
public override void Configure(EntityTypeBuilder<PictureExt> builder)
{
builder.ToTable("Picture");
builder.HasKey(picture => picture.Id);
builder.Property(picture =>
picture.MimeType).HasMaxLength(40).IsRequired();
builder.Property(picture => picture.SeoFilename).HasMaxLength(300);
builder.Property(p => p.ExternalUrl);
base.Configure(builder);
}
, и у меня есть исключение:
A key cannot be configured on 'PictureExt' because it is a derived type. The key must be configured on the root type 'Picture'. If you did not intend for 'Picture' to be included in the model, ensure that it is not included in a DbSet property on your context, referenced in a configuration call to ModelBuilder, or referenced from a navigation property on a type that is included in the model
Я понимаю, что я сделал неправильно, но я не знаю, как это сделать правильно,Может как то так?https://stackify.com/new-in-net-core-2-1/#post-19576-_kaymrlea07yf
Но как это реализовать?