Тема: Изменение объекта вне транзакции.
Добрый день. Хочу прояснить для себя одну вещь.
Я правильно понимаю, что при получении объекта из транзакции создается его копия, изменения из которой при выполнении transaction.Commit() записываются в базу, после чего никакой связи с базой не остается?
public Xrecord GetObjectUsingTr(ObjectId recordId) { using (var tr = Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction()) { var xrec = tr.GetObject(recordId, OpenMode.ForRead) as Xrecord; return xrec; tr.Commit(); } } public void ChangeObject(Xrecord xrec) { // что-то меняем в xrec // оно не сохранится? }
И чтобы в функции ChangeObject менялся объект, нужно снова открывать транзакцию, получать объект из базы и коммитить эту новую транзакцию? Есть ли более простой способ изменения объектов, полученных из транзации в другой функции?