This is a quick post for my own ignorance. On occasion I use LinqPad to make changes in a database and I find the stock LinqPad linq to sql provider to be very useful. I just happen to forget the syntax when making changes. This isn’t limited to just database operations, there are other things I just can’t remember to save my life.
Saving to database
//Using the target DB Set, call the "InsertOnSubmit" method like so:
Persons.InsertOnSubmit(new Person());
//Finally call the SubmitChanges method to execute
SubmitChanges();
Executing in a transaction
https://stackoverflow.com/questions/11126025/rollback-inserts-updates-deletes-in-linq-pad
//Set the transaction options otherwise the default is Serializable which is awful to use
var options = new TransactionOptions();
options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
options.Timeout = new TimeSpan(0, 5, 0); //Five minutes is plenty
//Setup the transaction with options
using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
//Perform your data saving operations here
//If an exception is thrown, then a rollback will automatically occurr
//Call the Complete method to commit transaction
scope.Complete();
}
Get your current execution path
//I use this all the time and I forget what the syntax is because it's LinqPad specific
var path = Path.GetDirectoryName(Util.CurrentQueryPath);