Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a little bit confused about these two terms "Linq to SQL" and "Entity Framework". I have the general idea that both of them somehow allow you to refer to database tables as .net objects or something of the sort, but please explain to me the difference between these two terms.

share|improve this question

closed as off topic by Mark Trapp Dec 6 '11 at 20:16

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

This question is just too broad. There are literally dozens of books on each of these topics and to actually answer this question would take another book. – Chad Dec 6 '11 at 17:00
@Chad: You're wrong. Please see Jalayn's answer. – Jim G. Dec 6 '11 at 19:15
@JimG - It is the best way to address this question and upvoted the answer but it really doesnt answer the question, rather it points to other questions and places where the op can do research. – Chad Dec 6 '11 at 19:17
Hi Rice Flour Cookies, this type of question about development tools is off-topic here: for that you want Stack Overflow. However, Jalayn's answer links to multiple discussions about this very issue: be sure to check those out. – user8 Dec 6 '11 at 20:18

This subject has already been covered several times, you may be interested in reading:

They are similar in that they both are ORM-based but EF is more "enterprisey" and feature-complete than Linq. EF is more comparable to NHibernate as for the available features and has matured with the release of .NET 4.0. Also, one of the most important things to keep in mind is that Linq will lead you into trouble if your DBMS is not part of the SQL Server family (be it "Express" or "Compact").

Edit: as @jkohlhepp has stated in the comment below, Linq to SQL is in maintenance mode (not Linq! thanks to Randy), so no more new features only bug corrections will be done. As such, it really is recommended to start new projects with EF.

share|improve this answer
All good points. But also bear in mind that Linq to SQL is basically in maintenance mode. Microsoft has stated that they only plan on investing further in EF. So I wouldn't recommend doing new stuff in L2S I would definitely use EF. – RationalGeek Dec 6 '11 at 16:16
@jkohlhepp Thanks, that's a good point, I'll edit my answer and include your remark. – Jalayn Dec 6 '11 at 16:19
"Linq is in maintenance mode..." That is not true. Linq to SQL is in maintenance mode. Linq (which L2S is built on top of) is most certainly not. – Randy Minder Dec 6 '11 at 18:51
@RandyMinder Point taken, thanks, I fixed that. – Jalayn Dec 6 '11 at 21:01

Not the answer you're looking for? Browse other questions tagged or ask your own question.