Namespace: Autodesk.AutoCAD.DatabaseServices
Assembly: AcDbMgd.dll
La classe OpenCloseTransaction fournit un modèle de transaction simplifié qui ouvre et ferme automatiquement les objets. Elle est plus simple que la classe Transaction standard mais offre moins de contrôle.
| Méthode | Type de Retour | Description |
|---|---|---|
Start() |
void |
Démarre la transaction |
Commit() |
void |
Valide la transaction |
Abort() |
void |
Annule la transaction |
GetObject(ObjectId, OpenMode) |
DBObject |
Obtient un objet |
AddNewlyCreatedDBObject(DBObject, bool) |
void |
Ajoute un nouvel objet |
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.ApplicationServices;
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
using (OpenCloseTransaction tr = db.TransactionManager.StartOpenCloseTransaction())
{
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)tr.GetObject(
bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
Line line = new Line(new Point3d(0, 0, 0), new Point3d(100, 100, 0));
btr.AppendEntity(line);
tr.AddNewlyCreatedDBObject(line, true);
tr.Commit();
}- Simplicité: Plus simple à utiliser
- Performance: Légèrement moins performant
- Contrôle: Moins de contrôle sur le cycle de vie des objets
- Utilisation: Bon pour les opérations simples
- Utiliser pour les opérations simples: Idéal pour les modifications basiques
- Transaction pour les opérations complexes: Utiliser Transaction standard pour plus de contrôle
- Toujours utiliser
using: Assure la disposition appropriée
- Transaction - Transaction standard
- TransactionManager - Gestionnaire de transactions
- Database - Base de données