Вы можете указать поставщика, который SubSonic использует во время выполнения. Таким образом, вы указали бы провайдера чтения (используя вашу строку соединения для чтения) при загрузке из базы данных, а затем указали провайдера записи (используя вашу строку соединения для записи), когда вы хотите сохранить его.
Следующее не проверено, но я думаю, что оно должно дать вам общее представление:
SqlQuery query = new Select()
.From<Contact>();
query.ProviderName = Databases.ReadProvider;
ContactCollection contacts = query.ExecuteAsCollection<ContactCollection>();
contacts[0].FirstName = "John";
contacts.ProviderName = Databases.WriteProvider;
contacts.SaveAll();