Попытка установить соединение один-к-одному или ноль с использованием интерфейса. Но 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"));
}
}
Возможно ли вообще использовать интерфейсы таким образом?