[dba-VB] ADO.NET Entity Framework - to use or not?

Arthur Fuller fuller.artful at gmail.com
Sun Apr 26 11:30:58 CDT 2009


As far as I know, there are two distinct meaninings of the acronym PITA. One
is Pain in the Ass and the other is Point In Time Archicture. I was involved
in one significant project which used the latter meaning, and several dozen
which used the former.

On the subject of ORM, I suggest that you contact Paul Nielson, who is a SQL
MVP and author of the SQL Bible books, and who has written an ORM thing for
SQL Server. My basic take on this is at the low end there will be four
procedures for each table (Select, Update, Delete, and Insert). These are
quite easy to generate. The trick is in how to handle objects -- consider
the classic Orders+OrderDetails example, just to keep the discussion simple.
In the relational world you treat Orders and OrderDetails as separate things
-- first you add the Order, then you add one or more Details to said Order.
This can grow rapidly more complicated given the existence of DetailTypes
(Been there, done that). I'll let you run free with the concept of Detail
Types, but suffice to say that they have a few columns in common and many
unique to the particular type. (For example, Car Rental vs. Hotel Room
Booking vs. Seat in a U2 concert.)

Suppose that you want to handle this aggregation as an object. What do you
gain by doing so?

In another app I once worked on, users could define the attributes of
various objects they dealt with. They could add a potentially unlimited
number of attributes to these objects, which in this case were pulp and
paper rolls. Various clients were interested in these or those attributes,
and we modeled this as rows in a table. IOW, one virtual row actually
expanded to N rows in a child table, and these were all grabbed and
assembled into one row, kind of like a crosstab thing.

It sucked. I spent a lot of time enhancing the performance and chopped it by
ten, but it still sucked. It took upwards of 10 seconds to retrieve a given
object. The speedy solution was to include all columns in the OrderDetails
table and then restrict the view to the particular columns of interest to
the particular client. This worked well in terms of performance but meant
that our developers had to recreate various views for each client.

A.

On Sun, Apr 26, 2009 at 5:28 AM, Salakhetdinov Shamil <mcp2004 at mail.ru>wrote:

> Hi Gustav,
>
> Clarification to the subject title -- I meant -- "to use or not to use now
> for real life applications development" -- for sure -- use in our ongoing
> Northwind.NET project, in one of the future releases.
>
> Thank you.
>
> --
> Shamil
>
> -----Original Message-----
> From: "Gustav Brock" <Gustav at cactus.dk>
> To: <dba-vb at databaseadvisors.com>
> Date: Sat, 25 Apr 2009 23:07:38 +0200
> Subject: Re: [dba-VB] ADO.NET Entity Framework - to use or not?
>
> > Hi Shamil
> >
> > There probably isn't a definitive recommendation - as always, it depends
> - but I must say I find it quite fascinating to "leave" the tables and views
> and work with objects instead.
>
> <snip>
> _______________________________________________
> dba-VB mailing list
> dba-VB at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-vb
> http://www.databaseadvisors.com
>
>



More information about the dba-VB mailing list