EditI'm using Transactional.TransactionScope and getting DTC errors. What is wrong?
TS has a limitation that only one connection can be opened within the TransactionScope's lifetime. Opening a second connection, even if using the same connection string, will promote the transaction from lightweight to a distributed transaction.
If you're going to use TransactionScope, be sure that the root object opens and closes the connection, and that child objects use this same connection. LocalContext may be used to share the connection object.
CSLA .NET 3.5 introduced types in Csla.Data, such as ConnectionManager, that help manage connections, transactions, context objects and so forth to avoid the DTC issue.
EditHow do I save multiple root objects in one transaction?
When you save an editable root object the data portal may save that object, and all its child objects, in a transaction (if you apply the Transactional attribute). Sometimes the need exists to save more than one root object as part of a single transaction (a single data portal Save() call).
read more...EditWhat is the recommended concurrency model?
This
forum thread has good info, and links to good info.