EF Core 6, SQL Server и .NET 6: ошибка свойства навигацииC#

Место общения программистов C#
Ответить
Anonymous
 EF Core 6, SQL Server и .NET 6: ошибка свойства навигации

Сообщение Anonymous »

Я пытаюсь перейти с NHibernate на EF Core. Я добавил шаблон репозитория и перенес репозиторий для каждого репозитория. Нет, у меня возникли проблемы со свойствами навигации.

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; }
}
класс:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»