Как я могу решить эту ошибку «Невозможно отследить объект»C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу решить эту ошибку «Невозможно отследить объект»

Сообщение Anonymous »

У меня есть два объекта Defectmelmaster и Defectmeleffectivity с одним и тем же первичным ключом.
После формирования списков я хотел бы вставить эти отдельные списки для Defectmelmaster и Defectmeleffectivity.
Однако после того, как дефектmelmaster AddRangeAsync завершается успешно, дефектмелеффективность AddRange выдает ошибку

Невозможно отследить объект, поскольку тот же экземпляр...

Код — Service.cs — это место, где формируются списки и вызываются методы вставки репо.

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

Service.cs:
foreach (var val in entities)
{
var defectMelMasterQuery = FormatDefectMelMasterQuery(val, userRegisterId);
var defectMelEffectivityQuery = FormatDefectMelEffectivityQuery(val, userRegisterId);
}

defectMelMasterQueryList.Add(defectMelMasterQuery);
defectMelEffectivityQueryList.Add(defectMelEffectivityQuery);

await _defectMelMasterRepository.InsertDefectMelMaster(defectMelMasterQueryList, cancellationToken);
await _defectMelEffectivityRepo.InsertDefectMelEffectivity(defectMelEffectivityQueryList, cancellationToken); //throws the error

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

DefectMelEffectivityRepo.cs
— это место, где вызывается AddRangeAsync и выдается ошибка:

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

//DefectMelEffectivityRepo

await _dbContext.Set().
AddRangeAsync(defectMelEffectivityQueryList, cancellationToken);

await _dbContext.SaveChangesAsync(cancellationToken);
Классы сущностей:
  • defectmeleffectivityentity.cs

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

public void Configure(EntityTypeBuilder builder)
{
builder.ToTable("DEFECT_MEL_EFFECTIVITY", schema: "XXX");

builder.Ignore(x => x.Id);

builder.HasKey(f => new {f.AcType, f.AcSeries,
f.MelNumber, f.MelSub, f.Ac, f.Company});
}
  • defectmelmasterentity.cs

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

public void Configure(EntityTypeBuilder builder)
{
builder.ToTable("DEFECT_MEL_MASTER", schema: "XXX");
builder.Ignore(x => x.Id);
builder.HasKey(f => new {f.AcType, f.AcSeries,
f.MelNumber, f.MelSub, f.Company});
}
Как решить эту проблему? Любая помощь приветствуется. Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... be-tracked
Ответить

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

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

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

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

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