gpt4 book ai didi

c# - 如何忽略linq to sql中违反主键约束

转载 作者:行者123 更新时间:2023-12-04 12:26:47 26 4
gpt4 key购买 nike

我有一个表,其中两个字段 (idLocation, zipcode) 都用作主键:

CREATE TABLE [dbo].[locationZipCode](
[idLocation] [int] NOT NULL,
[zipcode] [char](5) NOT NULL,
[state] [char](2) NULL,
CONSTRAINT [locationZipCode_pk_idLocation_zipcode] PRIMARY KEY CLUSTERED ([idLocation], [zipcode])
)

在我的应用程序中,我正在调用:

context.InsertAllOnSubmit(entities);
context.SubmitChanges(ConflictMode.ContinueOnConflict);

并在尝试插入重复记录时出现重复键冲突。这是意料之中的。如果任何记录重复,则不插入任何记录。 是否有忽略重复键异常并继续插入任何不违反主键约束的记录?

我意识到我可以在我的应用程序中调用 InsertAllOnSubmit() 之前验证重复,但如果我可以捕获错误并继续插入,那将是理想的。

最佳答案

对于 SQL Server,IGNORE_DUP_KEY 标志使数据库引擎忽略 key 违规。如果键存在,数据库中没有任何变化。

 CREATE UNIQUE CLUSTERED INDEX [locationZipCode_idx] ON locationZipCode
(
[idLocation] ASC, [zipcode] ASC
) WITH ( IGNORE_DUP_KEY = ON )

不要忘记先删除当前的 PK。

关于c# - 如何忽略linq to sql中违反主键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14778996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com