为什么LINQ to SQL将重复项插入到我的表中?

Sim*_*ang 0 .net c# sql linq linq-to-sql

我有一个Web服务,可以从我的数据库中检索评论,如果没有返回足够的评论,它会转到辅助源并将它们放到那里并将它们缓存在我的数据库中.我最近注意到它已经在我的数据库中创建了重复项,尽管我有主键来防止它.我在想,也许当我做桌子时我做错了什么?这是SQL create table片段:

create table Review(  
ReviewID int IDENTITY,  
CacheDate DateTime,  
UniqueID nvarchar(50),  
Type nvarchar(100),  
AverageRating decimal,  
TotalReviews decimal,  
Rating decimal,  
Content nvarchar(max),  
Summary varchar(100),  
HelpfulVotes int,  
TotalVotes int,  
ReviewDate nvarchar(100),  
ReviewerID nvarchar(100),  
ReviewerName nvarchar(100),  
ReviewerLocation nvarchar(100),  
primary key(ReviewID,UniqueID) 
)
Run Code Online (Sandbox Code Playgroud)

我已经逐步完成了我的代码,当它到达try catch部分时,它仍会插入行,即使它已经存在.

try { db.SubmitChanges(); }  
catch (Exception ex) {.....  
Run Code Online (Sandbox Code Playgroud)

有谁知道是什么问题?

Jim*_*uts 6

您的primay密钥基于ReviewID和UniqueID列.因此,两列的组合必须是唯一的.

您的副本是否具有匹配的ReviewID和UniqueID?