Is any cleanup necessary when using LinqMetaData on a SelfServicing model without a transaction (we created LinqMetaData with the default constructor)? There's no Dispose or Close method, and there is no accompanying DataAccessAdapter to dispose as is the case in Adapter mode.
In the adapter scenario the adapter needs to dispose the connection object, and it does so no dispose call is needed. It by default closes a connection after an action, which gives the underlying connection object back to the pool. The adapter will dispose the active connection object when it closes it. For SelfServicing is not that different, a connection is open and closed for each call, but remember that the LinqMetaData is not responsible of disposing the connection. LinqMetaData is a class for the construction of Linq queries.
If I create an entity or modify an entity loaded from LinqMetaData and try to save it, are any transactions being auto-magically created under the covers (when calling CommonEntityBase.Save)?
In that case the transaction is used only for the .Save action. You can include your Linq fetch though:
Transaction trans = new Transaction(IsolationLevel.ReadCommitted, "SSTest");
LinqMetaData metaData = new LinqMetaData(trans);
var q = (from c in metaData.Customer select c).ToList();
CustomerEntity customerToSave = q[0];
//.... some changes
trans.Add(customerToSave);
customer.Save();
...
trans.Commit();
We're seeing some issues where our web app (which uses SelfServicing) is throwing SQL timeout exceptions (only on the production server, so it's hard to debug), and it seems likely we must be doing something wrong with our use of LLBLGen.
Would be good to enable some tracing or try to reproduce it in your development environment.
What LLBLGen version and runtime library version are you using btw? (http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=7722)