|
|
Feature |
LINQ to SQL |
LINQ to Entities |
|
Language Extensions Support |
Y |
Y |
|
Language Integrated Database Queries |
Y |
Y |
|
Many-to-Many (3way Join/Payload relationship) |
N |
N |
|
Many-to-Many (No payload) |
N |
Y |
|
Stored Procedures |
Y |
N (to be added) |
|
Entity Inheritance |
N |
Y |
|
Single Entity From Multiple Tables |
N |
Y |
|
Identity Management / CRUD features |
Y |
Y |
Nice first cut. A couple of questions.
There are multiple comments from the folks at MS indicating that vNext is
layered deliberately so that you can work directly with the map provider,
or with entities - all of it is turned into dynamic SQL statements at the
bottom end using the same technology that turned DLINQ expressions into SQL
statements.
I tried DLINQ download a while back, and I recall it also had entity
inheritance.
If it had entity inheritance, it was only possible through manually editing
the C# classes generated by SQLmetal. If I recall, that was more painful
than root canal.
Regarding this:
"LINQ to Entities (L2E for short from now on) will actually use LINQ to SQL
to create the dynamic SQL statements..."
Thanks for the clarification Pablo. I've modified the text in the blog
post to reflect that LINQ to Entities is not actually using LINQ to SQL for
SQL query generation.
I link to your post here: http://www.base4.net/blog.aspx?ID=89
Linq to Sql (DLinq) does support inheritance.
Ok, what if I don't want allow anyone access my tables using SELECT
stataments (Which by the way should be the right way to go) but only thru
store procedures?. What I realize here is that until ADO.Net doesn't put
all that generated queries and automaticly persist it in the database using
Store Procs, it's dommed to be slow, and prone to wrong data access
practices. Besides from my perspective noone (Not even LINQ) should ever
use SELECT's in the application not matter how because is a clear and very
open security and performance flaw, when is Microsoft forget about small
databases, no one buys a 3000$ Visual Studio and pay others 30000$ for an
small application.
For small to medium size application, it's a total waste to go ORM. Just
give me the simple Typed Datasets and Tableadapter. It's more efficient and
quick to develop.