cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Lightswitch using sqlanywhere data source

Former Member
4,704

Has anyone been able to create a silverlight application with SQL Anywhere? I can create an application only on the same machine running the database. In addition I cannot update... the error is:

Cannot begin a transaction because the connection is already enlisted in a transaction

View Entire Topic
MCMartin
Participant
0 Likes

Doing a quick web search it seems that your problem is affecting multiple database products not only SQL Anywhere.

A solution I have found but have not tested is:

You must define a transaction handling for your Data Source.
  1. Switch to the File View of your LightSwitch Solution.
  2. Select the "Server" Project and add a reference to "System.Transactions".
  3. Open the Code for your Data Source (Right-Click on your Data Source --> Show/View Code)
  4. Declare a using for System.Transactions: using System.Transactions;
  5. Enter following code snippet:
  6. List item

public partial class YOURDATASOURCE { private TransactionScope _tscope;

partial void SaveChanges_Executing() { _tscope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted }); }

partial void SaveChanges_Executed() { _tscope.Complete(); _tscope.Dispose(); } }

In general if this doesn't work directly it seems to be a good idea to dig into the possibilities you have with using the TransactionScope class from .net to influence the enlistment of DataSources.