Search code examples
c#.netlinq-to-sqlexecute-as

SQL 'Execute As' Login Command and Linq to SQL


I am trying to execute a sql query as another login using the 'Execute As' command. I am using Linq to SQL, so I've generated a Data Context class and I am using the ExecuteQuery method to run the 'Execute As' SQL command. I then call a Linq to SQL command that is successful. However, every subsequent query fails with the following error:

A severe error occurred on the current command. The results, if any, should be discarded.

Here is the code snippet that I have tried:

SummaryDataContext summary = new SummaryDataContext();
summary.ExecuteQuery<CustomPostResult>(@"Execute as Login='Titan\Administrator'");
var test = summary.Customers.First();
var test2 = summary.Products.ToList();

No matter what query I run on the second query I receive the error message from above. Any help would be appreciated.


Solution

  • I managed to get around this issue in my application by executing the query using ADO.NET classes.

    SqlCommand cmd = new SqlCommand("EXECUTE AS USER = 'operator'");
    cmd.Connection = dc.Connection as SqlConnection;
    cmd.Connection.Open();
    cmd.ExecuteNonQuery();
    
    // do the rest of the queries using linq to sql