如何使用由多个字段组成的键更新表

时间:2009-07-20 15:48:57

标签: c# linq-to-sql

当我尝试使用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   una nueva identidad y elimine el   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 个答案:

答案 0 :(得分:1)

复合键是......完全丑陋,在我看来是数据库设计不良的迹象。但是,既然你似乎想要走这条路......桌子设计本身并不足以让任何人弄清楚为什么这不起作用。理论上,只要您的值有效,您就不应该遇到任何问题。你能提供你用来更新的代码吗?

问候。

答案 1 :(得分:0)

我所做的是使用存储过程来更新表,因为我无法撤消数据库设计。

对于未来的设计,我将使用只有1个键的表。