Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a LINQPad equivalent to a DataContext class?

I've just begun using LINQPad and so far I like it but most tutorials I have come across for LINQ TO SQL make use of a DataContext class which is generated by Visual Studio for persisting updates etc. I am also fairly new to LINQ TO SQL so my question is what is the equivalent of the following in LINQPad (if there is one)...

MyDbDataContext db = new MyDbDataContext();

...

db.SubmitChanges();
like image 811
Nick Allen Avatar asked Sep 10 '25 04:09

Nick Allen


2 Answers

Short answer: You do not need to create the DataContext yourself. LINQPad comes with lots of samples, take a look at them.

When you connect LINQPad to a database, it creates the DataContext for you. The DataContext's tables (Table<T>) and SubmitChanges() are available as local members.

For example, LINQPad's default "C# Expression" mode you can just write:

from p in Person
where p.Name == "Joe"
select p.Address

In LINQPad's "C# Statement" mode:

var query = from p in Person
            where p.Name == "Joe"
            select p.Address;

query.Dump(); // Dump() shows results below

Person joe = query.First();
joe.Name = "Peter";
SubmitChanges();

joe.Dump(); // shows joe's values under the previous query results

LINQPad's Dump() extension method is very useful can be called on any object or collection (in LINQPad's statement mode) to show the results below.

Note that you don't even need to connect to a database to use LINQPad. You can work with in-memory collections:

int[] numbers = new[] { 1, 2, 3, 4, 5 };
numbers.Where(n => n > 3).Select(n => n * 2).Dump();

In fact, you don't even need to use LINQ to use LINQPad. It also works great as a snippet compiler.

like image 117
Lucas Avatar answered Sep 13 '25 00:09

Lucas


As it was mentioned before, you don't need to create a DataContext as LINQPad creates one by default.
But just in case, you need a second DataContext (for the same database) you could use

var secondDataContext = new UserQuery();

This will create a second datacontext just like the automatically created one.

like image 25
jaraics Avatar answered Sep 13 '25 00:09

jaraics