Элемент Entity Framework Core 3.1.6 с тем же ключом уже добавленC#

Место общения программистов C#
Anonymous
Элемент Entity Framework Core 3.1.6 с тем же ключом уже добавлен

Сообщение Anonymous »

У меня есть веб-сайт MVC на .NET Core 3.1 с использованием Entity Framework 3.1.6. Моя проблема в том, что один из моих объектов теперь выдает ошибку:

System.ArgumentException: элемент с таким же ключом уже добавлен. Ключ: Эксперт

До недавнего времени все работало нормально, и я не уверен, что изменилось.
< strong>Модель

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

public class FacilityQCResult
{
[Key]
public int ID { get; set; }
public Guid? QCID { get; set; }
public string QCSeverity { get; set; }
public string QCType { get; set; }
public string QCShortName { get; set; }
public string Resolution { get; set; }
public string Base { get; set; }
public string FacilityNumber { get; set; }
public string FacilityName { get; set; }
public DateTime? DataEntryComplete { get; set; }
public string TeamAssignment { get; set; }
public string Assessor { get; set; }
public string TripWeek { get; set; }
public string Details { get; set; }
public Guid? FacilityID { get; set; }
}
Контекст

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

public partial class SQLDBContext : DbContext
{
public SQLDBContext()
{
}

public SQLDBContext(DbContextOptions options)
: base(options)
{
}

public virtual DbSet FacilityQCResults { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity(entity =>
{
entity.ToTable("FacilityQCResult");
entity.HasKey(e => e.ID);

entity.Property(e => e.DataEntryComplete)
.HasColumnName("Data_Entry_Complete")
.HasColumnType("datetime");

entity.Property(e => e.TeamAssignment)
.HasColumnName("Team_Assignment")
.HasMaxLength(100)
.IsUnicode(false);

entity.Property(e => e.TripWeek)
.HasColumnName("Trip_Week")
.HasMaxLength(10)
.IsUnicode(false);
});
}
}
Структура таблицы
[img]https://i. sstatic.net/lbgG8.png[/img]

Выдает ошибку, когда доходит до следующей строки:

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

var result = await context.FacilityQCResults.FromSqlRaw(" exec [dbo].[pr_ExecuteFacilityQCRules]").ToListAsync();
Хранимая процедура выполняет некоторые другие действия и выдает строки данных, которые моделируют структуру таблицы. Забавно то, что у меня есть другой объект, настроенный аналогичным образом и работающий без проблем. До недавнего времени казалось, что это работало, но я не знаю точно, когда это началось и почему, поскольку я не менял структуру объекта или таблицы. По сути, EF Core считает, что столбец Assessor является ключевым, хотя я этого не указал. Как это происходит и как мне сказать, что это не ключ?

Подробнее здесь: https://stackoverflow.com/questions/632 ... been-added

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