Я никогда не использовал WCF, поэтому этот ответ может не относиться к этой технологии.Но разве вы не можете инкапсулировать всю логику БД в методе или классе, с которыми взаимодействуют ваши клиенты?Затем вы можете изменить логику в случае новой БД, в методе / классе и до тех пор, пока публичный контракт остается прежним, вам не нужно будет обновлять код клиента.
Например:
class Client
{
DatabaseClass DC = new DatabaseClass();
DC.PerformMethod(); //Blissfully unaware of the methods inner workings.
}
class DatabaseClass
{
public void PerformMethod()
{
//Encapsulate DB Logic here. If you need to change it, you can just change it here and the client needs to know nothing of it
}
}