Я сталкиваюсь с ошибкой при удалении записи из таблицы базы данных с использованием структуры сущностей v4.0.30319.
Сценарий: Я вставляю запись в таблицу и на основе записейв некоторых других таблицах мне, возможно, придется удалить вставленную мной запись. Это происходит за один вызов из пользовательского интерфейса.
Код для вставки записи
public MytableEntityClass AddRecord(DTODATA data)
{
var addTableData = new MytableEntityClass
{
Name = data.name,
value = data.value,
Active = "Y"
};
_context.MyTable.Add(addTableData);
_context.SaveChanges();
return addTableData;
}
Чтобы удалить запись, я использую тот же объект, который имеетбыл возвращен функцией AddRecord.
Код для удаления записи
public int DeleteRecord(MytableEntityClass data)
{
_context.MyTable.Remove(data);
_context.SaveChanges();
return 0;
}
Класс сущности
[Table(SOMETABLE)]
public class MytableEntityClass
{
[Column("ID"), Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Column("Name")]
public string Name { get; set; }
[Column("Value")]
public int value { get; set; }
[Column("Active")]
public string Active { get; set; }
}
Таблица базы данных
CREATE TABLE SOMETABLE(
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NULL,
[Value] [int] NULL,
[active] [char](1) NOT NULL,
CONSTRAINT [tbl_PK] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [tbl_UK] UNIQUE NONCLUSTERED
(
[Name] ASC,
[Value] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
При _context.MyTable.Remove (data) я сталкиваюсь с ошибкой ниже: Свойство 'Id' является частью ключевой информации объекта и не может бытьизменено.
Я прочитал различные темы, связанные с ошибкой, но все говорят, что в базе данных должен быть первичный ключ, и в вашем классе сущностей вам необходимо сослаться на него. Я делаю оба, но все же я получаю эту ошибку.
Пожалуйста, посоветуйте, что мне не хватает и как ее устранить.