Alex Rivera | Logout

Difference between Linq to Sql, Linq, Typed Datasets, ADO.NET

Asked 2009-07-04T10:04:25.840
15

I been wondering about this for a while. It seems like there are so many ways now I don't know when to use what? Or if there is even a point to learn them. Like I don't know if they basically do all the same things and just basically stick with one till you master it then maybe look at other ones.

So when I was taking an ASP.NET course that was part of my program.

We first did like ADO.NET where we just wrote everything with SQL statements in the code. We then moved onto a 3 tier architecture. This was done by making like classes and having datasets that return stuff.

The SQL was written in the class. I personally never really liked this way since I always found it annoying with trying to get the quotes right and just overall did not like it.

I then found on the Asp.net site their tutorial of 3 tier arch that I really liked. They where using typed data sets. You add the dataset file to you DAL folder and you would make table adapters and stuff through the GUI. You would then write you code in these GUI, I found it the perfect solution since now my SQL code was away from my code and I did not have to worry about quotes and all that stuff not being right or closing the connections and stuff plus it even had a SQL GUI builder!

Then I would just make file in the BLL folder and make a property to grab the table adapter and write my business layer logic.

The only thing I did not like was since it was typed if my stuff tried to return some new rows it would get mad.

So when I had to join tables I usually had to make a new table adapter.

Now there seems to be so many of them.

  • Linq -> what some people said would replace ADO.NET and some said it would not.
  • Linq to sql
  • ado.net

I am not sure if that is all of them probably not.

Before writing this post I did a quick check to see what linq to sql was about and saw some posts saying that MS was killing it off

Edit
Report

1 Answer

4

I'd say that if you're having trouble with getting quotes right in your SQL statements using ADO.NET, you're probably building the SQL statements in the wrong way. Prone to SQL injection or at the very least: messy code.

LINQ to SQL uses ADO.NET to do it's thing. It's a combination of an Object-relational mapping (ORM) tool combined with a new query syntax basically. I wouldn't invest time in LINQ to SQL as Microsoft has declared it end of life.

Entity Framework is the LINQ to SQL replacement. It is an ORM tool which comes with it's own SQL like query language, Entity SQL. You can use LINQ on top of it, so that most simple queries are exactly the same as in LINQ to SQL.

What method to use depends largely on what you're trying to do. I would not use typed DataSets (or any DataSets really). It's a personal preference I guess, but if you can create typed DataSets, you're better off doing full scale object-relational mapping.

Knowing basic ADO.NET is a useful skill however you look at it though. Especially if you need to update multiple records in a database without first retrieving that data, you'll always end up writing SQL statements. I'd recommend creating stored procedures for those cases, which you can call with plain ADO.NET, or you can you can add them to your model in Entity Framework and call them through there.

Entity Framework gives you some database independence (unlike LINQ to SQL). There are implementations for Oracle around, but I have no experience with them personally. From what I've heard they impose some undesired limitations if you're doing semi-complicated work.

answered 2009-07-04T10:17:30.867

Your Answer