Browse > Home / Archive by category 'EntityFramework'

| Subscribe via RSS

Entity Framework Under Fire

June 27th, 2008 | 2 Comments | Posted in EntityFramework

If like me you spend some of your spare time keeping tabs on what is going on in the .Net blogosphere you wont have failed to notice the current drama surrounding the new Microsoft Entity Framework.

To cut a long story short: a bunch of know-it-alls have got their knickers in a twist over some of the features excluded from version 1 ( VERSION 1!!!) of the framework. I think, knowing the nature in which Microsoft evolves their products nowadays ( look at how different the Ajax Framework is now compared to the first release ) this really is a storm in a teacup. The most common sense, pragmatic, real world view of the state of play is this one by Ward Bell. For me, he hits the nail on the head.

In my opinion there is a real attitude problem on display from the petitioners, who I suspect have a vested interest in seeing EF fail or look half thought out. I’ve had a long term disregard for 99% of ORM tool vendors ( the excellent Subsonic framework excluded ) because of the ‘I-know-best-don’t-even-try-to-question-or-understand’ tactics they use to retain a foothold in the marketplace.

I’m a big fan of this quote from the highly recommended book - The Pragmatic Programmer by Andrew Hunt & David Thomas:

“Critically Analyse What You Read and Hear. Don’t be swayed by vendors, media hype, or dogma. Analyse information in terms of you and your project.”

Bottom line: Make your own mind up about Entity Framework, about if it’s right for you and your projects.

ADO.NET Entity Framework Quickstart Tutorial

June 3rd, 2008 | No Comments | Posted in ASP.NET, C#, EntityFramework, LINQ

The ADO.NET Entity framework received another update last week as part of the Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta, so to coincide with this I give you a quick run through to get you started. Being honest, if you have used an OR mapper in the past this will be familiar territory. If not, this new implementation is a good place to start.

screenshot1 So to begin, create a new ASP.NET website, Add New item, and then choose ADO.NET Entity Data Model. Name it EntityModel.edmx and click Add to create a new model.

The Entity Data Model Wizard will pop up and give you a chance to configure your new model. For the purposes of this walk through, choose Generate from database and click Next.

screenshot4 Set up your data connection, I won’t go into this as it’s simple enough to figure out if you’ve never done it before. Click the checkbox to save entity connection settings into your web.config and name it MyEntities.

screenshot6The wizard will then tootle off and retrieve the names of all the tables, views and stored procedures in your database. Choose a table ( I’ve chosen a table from my DB called ‘Log’ ) and name the Model Namespace MyModel.

Click Finish and the designer for your model will open. As a side note have a look at the Model Browser on the right hand side - it looks a bit ‘rendered’ for want of a better description, as though it’s drawn via GDI+ compared to the Solution Explorer….strange!

Now add a new web page and go into the code behind to start the real work. It’s just a simple bit of code to CRUD the Log entities in my database.


// instantiate a new Log entity
MyModel.Log log = new MyModel.Log();

// populate it’s properties
log.Date = DateTime.Now;
log.Exception = “Test Exception”;
log.Level = “Test Level”;
log.Logger = “Test Logger”;
log.Message = “Test Message”;
log.Thread = “Test Thread”;

//instantiate the entity ‘context’ - the object used
//as a ‘gateway’ to the DB
MyModel.MyEntities entities = new MyModel.MyEntities();

// Save the new log entity to the DB
entities.AddToLog(log);
entities.SaveChanges();

// Load it back via a little LINQ query
// ( funny how you must use .First instead of .Single )
MyModel.Log loadedLog = entities.Log .Where(ent => ent.Level == “Test Level”).First();

// make a change and save it back to the DB
loadedLog.Message = “Message has changed!”;
entities.SaveChanges();

// Finally delete the object from the DB
entities.DeleteObject(loadedLog);
entities.SaveChanges();

Notice how you have to call .SaveChanges() to persist back to the DB. That’s it! A super fast run through of CRUD with the ADO.NET Entity Framework! Enjoy!

kick it on DotNetKicks.com