Это может быть поздно, чтобы ответить ... однако ...
Если таблица не имеет первичного ключа, то есть несколько сценариев, которые необходимо проанализировать, чтобы заставить EF работать должным образом,Правило: EF будет работать с таблицами / классами с первичным ключом.Вот как работает отслеживание ...
Скажем, ваша таблица 1. Записи уникальны: уникальность создается одним столбцом внешнего ключа: 2. Записи уникальны: уникальность создается комбинациейнесколько столбцов.3. Записи не являются уникальными (по большей части *).
Для сценариев # 1 и # 2 можно добавить следующую строку в метод OnModelCreating модуля DbContext: modelBuilder.Entity (). HasKey (x =>new {x.column_a, x.column_b});// столько столбцов, сколько требуется, чтобы сделать записи уникальными.
Для сценария # 3 вы все равно можете использовать вышеуказанное решение (# 1 + # 2) после изучения таблицы (* что делает все записи уникальнымитем не мение).Если вам необходимо включить ВСЕ столбцы, чтобы сделать все записи уникальными, вы можете добавить в таблицу столбец первичного ключа.Если эта таблица принадлежит стороннему поставщику, то клонируйте эту таблицу в вашу локальную базу данных (в одночасье или столько времени, сколько вам нужно) с произвольным добавлением столбца первичного ключа в сценарии клонирования.