Как обновить таблицу с ключом, состоящим из более чем 1 поля - PullRequest
0 голосов
/ 20 июля 2009

При попытке обновить таблицу с помощью Linq To Sql я получаю следующее исключение:

El valor de miembro 'IdSeccionNovedad' de un objeto de tipo 'Novedad' ha cambiado. Нет никакой новой модификации Miembro Que определить La Identidad Del objeto. Agregue un nuevo objeto con уна нуэва идентидад и элимин эль existente.

которое первое предложение можно перевести на что-то вроде:

Невозможно изменить член, который определяет личность объекта

Таблица такова:

CREATE TABLE [dbo].[Novedades](
    [IdNovedad] [int] NOT NULL,
    [IdSeccionNovedad] [int] NOT NULL,
    [Antetitulo] [varchar](250) NULL,
    [Titulo] [varchar](250) NOT NULL,
    [Sumario] [varchar](max) NULL,
    [Cuerpo] [varchar](max) NULL,
    [FechaPublicacion] [smalldatetime] NOT NULL,
    [Activo] [bit] NOT NULL,
 CONSTRAINT [PK_Novedades] PRIMARY KEY CLUSTERED 
(
    [IdNovedad] ASC,
    [IdSeccionNovedad] ASC
)

Я знаю, что могу решить это с помощью хранимой процедуры, но как я могу решить это с помощью Linq To Sql?

Ответы [ 2 ]

1 голос
/ 20 июля 2009

Композитные ключи ... совершенно уродливые и, на мой взгляд, признак плохого дизайна базы данных. Однако, поскольку вы, кажется, хотите пойти по этому пути ... сама по себе конструкция таблицы не позволяет никому понять, почему это не работает. В теории у вас не должно быть никаких проблем, пока ваши ценности действительны. Можете ли вы предоставить код, который вы используете для обновления?

Привет.

0 голосов
/ 03 сентября 2009

Я использую хранимую процедуру для обновления таблицы, потому что не могу отменить дизайн базы данных.

В будущих проектах я буду использовать таблицы только с 1 ключом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...