Если ваша таблица Session
не имеет первичного ключа, она отображается как DefiningQuery
, что делает ее доступной только для чтения.Вы не можете удалять, вставлять или обновлять записи, сопоставленные с DefinedQuery
, если вы не создадите хранимые процедуры, определяющие эти операции, и сопоставите их в модели.
Даже после этого этого не должно быть достаточно.Объекты удаляются их ключом.Вы можете определить ключ в своей модели сущности, но ключ должен однозначно идентифицировать запись.По умолчанию EF будет использовать все необнуляемые, недвоичные столбцы в качестве ключа.Если этот набор столбцов не идентифицирует записи однозначно, у вас будет больше проблем с использованием сущности Session
(например, операция удаления приведет к удалению более одной записи, а SaveChanges
не удастся выполнить) - в этом случае единственным вариантом является добавлениеуникальный столбец таблицы и использовать его в качестве ключа.Как только вы добавите PK в таблицу, все эти проблемы будут решены.