Det, du vil gøre, er først at tjekke for den eksisterende post, og hvis den ikke eksisterer, så tilføje en ny. Din kode vil altid forsøge at tilføje en ny post. Jeg går ud fra, at du bruger Linq2Sql (baseret på 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();
}
}