代码之家  ›  专栏  ›  技术社区  ›  cori

插入的LINQ到SQL主键要求失败[关闭]

  •  1
  • cori  · 技术社区  · 15 年前

    在用于实际项目之前,我正在努力更好地理解Linq to SQL,所以我正在一个小项目中使用它。我试图通过DataContext.SubmitChanges()更新一个表,但由于主键约束,该表失败。

    我无法控制表本身(我无法添加实际的ID列),因此我修改了Linq实体,将3列用作复杂键。插入仍然失败,即使关键数据在更新集和表中的现有数据中都是唯一的,我很想知道为什么。我遗漏了什么迫使Linq将这些值视为非唯一值?

    请注意,我并不是试图解决更新问题本身——我已经确定,在我的情况下,DataContext.ExecuteCommand()也可以工作。我正试图探索我对Linq(或我的数据)的理解有何错误。

    表结构如下所示: OPRID(char(30)) 日期(日期时间) 项目编号(字符(15)) 小时数(十进制)

    最后3列是复杂键。

    cschlege,2009-1-510081.1 cschlege,2009-1-510099,0.8 cschlege,2009-1-510081.2

    为什么LINQ不将这些行视为唯一键控的行?

    2 回复  |  直到 15 年前
        1
  •  1
  •   bruno conde    15 年前

    如果1.2轮为1,则您有以下问题:

    cschlege,2009-1-510088,

    (4)

    正如您所说,如果删除项目ID,则第3行将失败:

    , (1)

    cschlege,2009-1-5, 10099 , 0 (3)

    您能否只插入数据库中的最后一行,然后用 1.2

        2
  •  0
  •   cori    15 年前