Това, което искате да направите, е първо да проверите за съществуващия запис и ако не съществува, след това добавете нов. Вашият код винаги ще се опитва да добави нов запис. Предполагам, че използвате Linq2Sql (въз основа на InsertOnSubmit
)?
public void Subscribe(string clientID, Uri uri)
{
using(clientsDBDataContext clientDB = new clientsDBDataContext())
{
var existingClient = (from c in clientDB.clientURIs
where c.clientID == clientID
select c).SingleOrDefault();
if(existingClient == null)
{
// This is a new record that needs to be added
var client = new ServiceFairy.clientURI();
client.clientID = clientID;
client.uri = uri.ToString();
clientDB.clientURIs.InsertOnSubmit(client);
}
else
{
// This is an existing record that needs to be updated
existingClient.uri = uri.ToString();
}
clientDB.SubmitChanges();
}
}