У меня есть класс репозитория на основе Linq-To-Sql, который я успешно использую. Я добавляю к решению некоторые функциональные возможности, которые обеспечат доступ к базе данных на основе WCF.
Я не выставил сгенерированные классы Linq как DataContracts, вместо этого я создал свой собственный "ViewModel" как POCO для каждой сущности, которую я собираюсь возвращать.
Мой вопрос заключается в том, чтобы для обновления и использования некоторых функций Linq-To-Sql, таких как циклические ссылки из моей службы, нужно ли мне добавлять поле Rowversion / Timestamp для каждой таблицы в базе данных, Я могу использовать код как dc.Table.Attach(myDisconnectedObject)
? Альтернатива, кажется некрасивой:
var updateModel = dc.Table.SingleOrDefault(t => t.ID == myDisconnectedObject.ID);
updateModel.PropertyA = myDisconnectedObject.PropertyA;
updateModel.PropertyB = myDisconnectedObject.PropertyB;
updateModel.PropertyC = myDisconnectedObject.PropertyC;
// and so on and so forth
dc.SubmitChanges();