c# – 违反PRIMARY KEY约束.无法插入重复键
发布时间:2020-12-16 02:01:39 所属栏目:百科 来源:网络整理
导读:我正在使用List对象来包含我的主表与其具有一对多关系的辅助表中的项目.主表的PK用作辅助表上的FK字段. 但是,当记录尝试保存时,我收到此错误 Violation of PRIMARY KEY constraint 'PK_ClearinghousePartners'. Cannot insert duplicate key in object 'dbo.
我正在使用List对象来包含我的主表与其具有一对多关系的辅助表中的项目.主表的PK用作辅助表上的FK字段.
但是,当记录尝试保存时,我收到此错误 Violation of PRIMARY KEY constraint 'PK_ClearinghousePartners'. Cannot insert duplicate key in object 'dbo.ClearinghousePartners'. The duplicate key value is (0) 主表模型 仅供参考 – 此表包含大量字段,因此我只显示列表 public partial class AgentTransmission { . . public virtual List<ClearinghousePartners> ClearinghousePartners { get; set; } } 二级表模型 public partial class ClearinghousePartners { public int Id { get; set; } public string ClearingHouseName { get; set; } public string TradingPartnerName { get; set; } public Nullable<System.DateTime> StartDate { get; set; } public int AgtTransId { get; set; } //FK field corresponds to 'Id' on AgentTransmission public virtual AgentTransmission AgentTransmission { get; set; } } 调节器 当模型发回到控制器以保存异常时会抛出代码的这个区域.这是一个AgentTransmission对象是全新的并且需要添加到数据库的实例. ClearinhousePartners集合中的每个项目都是如此. 每个都是全新的ClearinghousePartners项目,没有Id和AgtTransId字段的值.我需要首先保存AgentTransmission对象,以便可以创建它的Id字段,然后将其插入到ClearinghousePartners对象的AgtTransId字段中. agenttransmission.LastChangeDate = DateTime.Now; agenttransmission.LastChangeOperator = Security.GetUserName(User); db.AgentTransmission.Add(agenttransmission); db.SaveChanges(); //Exception thrown here 视图 <fieldset id="ClearinghousePartners"> <legend>Clearinghouse Partners</legend> <center> <table> <thead> <th>Clearinghouse Name</th> <th>Trading Partner Name</th> <th>Start Date</th> </thead> <tbody> @for (int i = 0; i < Model.ClearinghousePartners.Count(); i++) { <tr align="center"> @Html.HiddenFor(model => model.ClearinghousePartners[i].Id) @Html.HiddenFor(model => model.ClearinghousePartners[i].AgtTransId) <td>@Html.TextBoxFor(model => model.ClearinghousePartners[i].ClearingHouseName,new { style = "width: 100px" })</td> <td>@Html.TextBoxFor(model => model.ClearinghousePartners[i].TradingPartnerName,new { style = "width: 100px" })</td> <td>@Html.TextBoxFor(model => model.ClearinghousePartners[i].StartDate,new { style = "width: 100px" })</td> </tr> } </tbody> </table> </center> </fieldset> 解决方法
我猜你的表没有设置为自动将主键值填充为标识属性.声明应如下所示: ClearinghousePartners int primary key PK_ClearinghousePartners identity (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- s5pv210 uboot-2012-10移植(六) 之支持NandFlash
- ruby-on-rails – 在Rails 4.2中检查作业是否已经入队
- ruby-on-rails – MIgrations和Rspec
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第一课:游戏
- cocos2dx TextFieldTTF
- 在OSX Mountain Lion上安装新的RVM Ruby 1.9.3时出现“错误
- EMBEDDED_driver_nandflash_&_FPGA_8_15
- 实战:从零开始打造一个 Swift 网络框架
- Oracle之唯一性约束(UNIQUEConstraint)用法详解
- React Native调用原生模块--Toast