I totally agree with you Tony. I've always felt the LINQ to SQL designer was
somewhat more thought out and aimed at the whole KISS principle, while LINQ
to Entities tried to be "enterprisey" when it really didn't need to be.

Admittedly I haven't taken a look at EF since back when it first came out,
with my biggest turn off being Single() / SingleOrDefault() missing. Has
this been added now?

-------------
Michael Lyons


-----Original Message-----
From: [email protected] [mailto:[email protected]]
On Behalf Of [email protected]
Sent: Monday, 9 August 2010 12:19 PM
To: [email protected]
Subject: I don't like Linq to Entities

Hi all,

I have my archidev hat on at the moment (given my last few emails I'm
betting that doesn't 
surprise people)

One task I have been looking at is figuring out how to convert our
applications from Linq to SQL 
over to Linq to Entities. The reasons are that Linq to Entities is installed
out-of-the-box, and Linq to 
SQL has to be added in (this implies a preference by Microsoft), LINQ to SQL
is no longer receiving 
support from Microsoft, and LINQ to Entities supports multiple databases and
devices.

Apart from that, it provides much of the same; everything that Linq to SQL
does, Linq to Entities 
can certainly do. But Linq to Entities gives me no other real advantages
within my environment 
other than "architectural correctness" perhaps.

But LINQ to SQL has one distinct advantage over Linq to Entities. 

This is the major major gripe that I have, and on this basis is enough for
me to choose SQL over 
Entities.

When I drag a stored procedure from the server explorer onto my linq to sql
designer, the stored 
proc appears in the designer in a column on the right. If I have other
objects on the designer, such 
as a table/entity, I can map the stored proc output to that object. It's all
visual and I can see 
whether everthing has been done right. It's also simple for my developers to
see whether they've 
provided everything they're meant to provide when returning data from the
database.

In the LINQ to Entities case, I drag a stored proc onto the designer. It
_disappears_ into the ether. 
Yes, it was added, but there's nothing visual on the designer to tell me
that. Not only that, but I 
have to _map_ the stored proc to a function by using a right-click context
menu and performing a 
function import. After the function import, the routine is available to be
called, but it still does not 
appear on the designer. I have to open the Model Browser to find my stored
proc, and that's on a 
tab behind my solution explorer.

So that, and that alone, is enough to make me reject LINQ to Entities. It is
the pain of extra 
administration. And it shouldn't be that hard for the designer to be fixed
to behave in a similar 
fashion to LINQ to SQL as well. There is nothing that says that it would be
impossible for a stored 
procedure to be dragged onto the canvas and have the function imported
immediately based on 
the stored procedure name, and have the stored procedure itself available
via the properties of 
that function.

So that's my gripe.

Regards,
Tony

Reply via email to