违反UNIQUE KEY约束,但没有任何重复

Nat*_*han 0 c# sql linq

我正在尝试使用LINQ将数据加载到SQL中.当我到达时context.SubmitChanges(),抛出以下异常:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.Linq.dll

Additional information: Violation of UNIQUE KEY constraint 'UQ__SDA_Cont__403B95D755FFB06A'. Cannot insert duplicate key in object 'dbo.SDA_Contracts'. The duplicate key value is (3M).
Run Code Online (Sandbox Code Playgroud)

这是产生错误的代码.我已手动进入数据(通过在调试器中查找订单并查看它).如异常所示,没有重复的条目.

var noDuplicates = query
    .GroupBy(x => x.ContractingParty)
    .Select(x => x.First());
var duplicates = query
    .Select(x => { x.ContractingParty = x.ContractingParty + "-2"; return x; })
    .GroupBy(x => x.ContractingParty)
    .Where(g => g.Count() > 1)
    .Select(x => x.Skip(1).Take(1).Single());
Console.WriteLine(query.Count() + " Total entries");
Console.WriteLine(noDuplicates.Count() + " Unique entries based on contracting party");
Console.WriteLine(duplicates.Count() + " Non-unique entries");

using (SqlConnection conn = new SqlConnection(connectionString))
{
    using (DataContext context = new DataContext(conn))
    {
        Table<Contract> contracts = context.GetTable<Contract>();
        Table<Attachment> attachments = context.GetTable<Attachment>();
        contracts.InsertAllOnSubmit(noDuplicates);
        contracts.InsertAllOnSubmit(duplicates);
        context.SubmitChanges();
        Console.WriteLine("Contracts inserted");
     ....
Run Code Online (Sandbox Code Playgroud)

我已经尝试评论contracts.InsertAllOnSubmit(duplicates);以确定没有重复的条目,并且仍然抛出异常.关于这一点的令人沮丧的部分是几天前制定的计划.数据库模式是相同的,程序没有更改,但由于某种原因,程序不再运行.

我确保Contract对象中没有任何空值.Contract类定义为:

[Table(Name = "SDA_Contracts")]
class Contract : IEquatable<Contract>
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true, Name = "contractId")]
    public int ContractId;

    [Column(Name = "contractingParty")]
    public string ContractingParty;
....
Run Code Online (Sandbox Code Playgroud)

Nat*_*han 5

结果我连接到错误的数据库.我会展示自己.