Я создал классы доступа к данным, которые инкапсулируют всю связь с Linq2Sql.
Эти классы имеют свой собственный текст данных, который они используют в своих объектах.
public class ClientDataLogic
{
private DataContext _db = new DataContext();
public Client GetClient(int id)
{
return _db.Clients.SingleOrDefault(c => c.Id == id);
}
public void SaveClient(Client c)
{
if (ChangeSetOnlyIncludesClient(c))
_db.SubmitChanges();
}
}
Конечно, вам нужно будет создавать экземпляры этого объекта, пока вам нужны эти объекты.
Проверка того, что только правый объект был изменен, является довольно сложной задачей, вы можете создать такие методы, как
void ChangeClientValue(int clientId, int value);
но это может стать большим количеством кода.
Присоединение и отсоединение - это несколько недостающая функция в Linq2Sql, если вам нужно часто ее использовать, возможно, вам следует использовать Linq2Entities.