System.InvalidOperationException: свойство или навигацию ReadJob невозможно добавить к типу сущности ProductRead, поскольку Свойство или навигация с таким же именем уже существует в типе сущности ProductRead.
Построитель моделей выглядит следующим образом:
Код: Выделить всё
modelBuilder.Entity
(entity =>
{
entity.Property(e => e.Id).ValueGeneratedNever();
entity.Property(e => e.ImageUrl).IsRequired(false);
entity.Property(e => e.AbsDeviation)
.HasColumnName("absDeviation")
.HasComputedColumnSql("(abs([Quantity]-[ExpectedQuantity]))", false);
entity.Property(e => e.ImageUrl).HasMaxLength(255);
entity.Property(e => e.NegativeDeviation)
.HasColumnName("negativeDeviation")
.HasComputedColumnSql("(case when [ExpectedQuantity]>[Quantity] then [Quantity]-[ExpectedQuantity] else (0) end)", false);
entity.Property(e => e.PositiveDeviation)
.HasColumnName("positiveDeviation")
.HasComputedColumnSql("(case when [Quantity]>[ExpectedQuantity] then [Quantity]-[ExpectedQuantity] else (0) end)", false);
entity.Property(e => e.Sku).HasMaxLength(36);
entity.Property(e => e.Version)
.IsRowVersion()
.IsConcurrencyToken();
entity.HasOne(e => e.ReadJob)
.WithMany(e => e.ProductReads)
.HasForeignKey(e => e.ReadJobId)
.HasConstraintName("FK_ProductReads_ReadJobId_ReadJob_Id")
.IsRequired(false)
.OnDelete(DeleteBehavior.Cascade);
entity.HasIndex(e => e.Created, "IX_ProductReads_Created_Quantity_ReadJobId_Sku")
.HasFillFactor(90);
entity.HasIndex(e => e.ReadJob, "IX_ProductReads_ReadJobId_CreatedSkuQuantityExpectedQuantityImageUrlNoStockTransferVersion")
.HasFillFactor(90);
entity.HasIndex(e => e.ReadJob, "IX_ProductReads_ReadJobId_Incl_Sku")
.HasFillFactor(80);
entity.HasIndex(e => new { e.ReadJob, e.Sku }, "IX_ProductReads_ReadJobId_Sku_cover")
.HasFillFactor(80);
});
Код: Выделить всё
ProductReadКод: Выделить всё
public class ProductRead : EntityBase
{
public ProductRead()
{
this.ProductEntries = new List
();
}
public virtual Guid? ReadJobId { get; set; }
public virtual ReadJob ReadJob { get; set; }
public virtual DateTime Created { get; set; }
public virtual string Sku { get; set; }
public virtual int? Quantity { get; set; }
public virtual int ExpectedQuantity { get; set; }
public virtual bool NoStockTransfer { get; set; }
public virtual int? Deviation
{
get
{
if (this.Quantity != null)
{
return this.Quantity.Value - this.ExpectedQuantity;
}
return null;
}
}
public virtual IList ProductEntries { get; protected set; }
public virtual string ImageUrl { get; set; }
public virtual int? AbsDeviation { get; }
public virtual int? PositiveDeviation { get; }
public virtual int? NegativeDeviation { get; }
}
Код: Выделить всё
ReadJobКод: Выделить всё
public class ReadJob : EntityBase
{
public ReadJob()
{
this.ProductReads = new List
();
}
public virtual DateTime Created { get; set; }
public virtual DateTime? Completed { get; set; }
public virtual DateTime? Started { get; set; }
public virtual int UserId { get; set; }
public virtual ReadJobState State { get; set; }
public virtual Guid? AssignmentId { get; set; }
public virtual Assignment Assignment { get; set; }
public virtual IList ProductReads { get; set; }
public virtual ReadType ReadType { get; set; }
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... erty-error
Мобильная версия