我正在尝试记录唯一标识符,因此我无法承担我的ID的重复记录
当我尝试更新名为 Clients
的SQL Server表时,我收到的错误看起来像这样 .
违反PRIMARY KEY约束'PK_clients' . 无法在对象'db_owner.clients'中插入重复键 .
这个代码看起来像这样:
public void Subscribe(string clientID, Uri uri)
{
clientsDBDataContext clientDB = new clientsDBDataContext();
var client = new ServiceFairy.clientURI();
client.clientID = clientID;
client.uri = uri.ToString();
clientDB.clientURIs.InsertOnSubmit(client);
clientDB.SubmitChanges();
}
任何想法我怎么能解决这个问题,所以我可以更新我的行,我想要做的就是当一行存在然后只更新相关的URI,如果它不存在则提交新的clientID URI ,
谢谢
约翰
2 回答
您要做的是首先检查现有记录,如果它不存在,则添加一个新记录 . 您的代码将始终尝试添加新记录 . 我'm assuming you'重新使用Linq2Sql(基于
InsertOnSubmit
)?您需要获取现有对象并更新其
uri
属性,然后调用clientDB.SubmitChanges()
. 您现在拥有的代码非常明确地要求它插入新记录 .大概这样的事情会起作用: