Попытка установить соединение один-к-одному или ноль, используя интерфейс в EF6 - PullRequest
0 голосов
/ 25 апреля 2020

Попытка установить соединение один-к-одному или ноль с использованием интерфейса. Но EF выдает ошибку:

Свойство навигации Item не является объявленным свойством типа LotModel. Убедитесь, что он не был явно исключен из модели и является допустимым свойством навигации.

public class LotModel
{
    [Key] [Required] public int Id { get; set; }
    [Required][ForeignKey("ItemId")] public virtual ISellable Item { get; set; }
    [Required] public int ItemId { get; set; }
    [Required] public  float Price { get; set; }
    [Required] public virtual User Seller { get; set; }
    [Required] public LotStatus Status { get; set; }
    [Required] public LotType Type { get; set; }
}

public interface ISellable
{
    [ForeignKey("LotId")]LotModel Lot { get; set; }
    int LotId { get; set; }
}


public class Context: DbContext 
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
        modelBuilder.Entity<LotModel>().HasRequired(l => l.Seller).WithMany(u => u.LotModels).HasForeignKey(u => u.Id);
        modelBuilder.Entity<LotModel>().HasRequired(u => u.Item).WithOptional(u => u.Lot).Map(s=>s.MapKey("ItemId"));
}
}

Возможно ли вообще использовать интерфейсы таким образом?

...