You may think you read that title wrong. Does she mean EF7? No, I actually invested some time into creating a new Getting Started with EF6 course even though EF6 was released about 18 months ago. When EF6 was released, most of what changed since EF5 was the advanced features and usage. I did a course called “EF6 Ninja Edition: What’s New in Entity Framework 6” specifically to cover those additions/improvements. But for the “toes in the water” first look at EF, not much had changed between EF5 and EF6 so the Getting Started with EF5 course remained pretty relevant.
Watch Getting Started with Entity Framework 6
So why Getting Started with EF6 now, when EF7 seems to be around the corner? Well, EF7 is still going to be a while. Even though a “Beta 6” was announced recently, the team has said in a significant way that EF7 Beta 6 is still “very much a preview” of EF7. A pre-release of EF7 is expected in early 2016 along with the release of ASPNET5. But the RTM of EF7 is still further off than that date. And even then, not everyone will be using EF7 right away.
So EF6 will be around for a long time and I decided that it was useful to have a course that addressed Getting Started with EF6 directly including using the latest version of Visual Studio – VS2015.
The first module is an overview which is designed for not just developers but even your managers who may want to have a better understanding of what EF is and how it fits into your overall plans.
I am also committed to creating two more EF6 courses for Pluralsight — also for the sake of being long-term resources. These will consolidate information in the various courses I’ve created about EF3.5 – 6 over the years. One will be an EF6 Fundamentals and the other will be Advanced EF6.
In the meantime, I’ll be updating the “Looking Ahead to EF7” course to reflect the Beta 6 since things have evolved since Beta 3 when I did that course.
Sign up for my newsletter so you don't miss my conference & Pluralsight course announcements!
Awesome! Can’t wait for the updates to the courses! I have watched all of your other ones and read through all 3 of your books. In fact, I keep them beside me whenever I am programming in my data layer. Do you think you will get the chance to cover some new N-tier concerns with third party applications you have recommended such as Telerik UI? They are setup pretty much to expose your context directly into the view layer and I am just not comfortable with that.
In addition, I noted there is quite some talk about removing the whole repository pattern all together within frameworks such as ASP.NET MVC however most solutions I see along those lines from those affirming this action simply wind up using the Http Context as their Unit of Work and the Controllers as the repository. Are you planning on sharing your thoughts on that pattern in the upcoming revamps?
Love your work,
Andy
What is the reason for using a disconnected repository in the MVC application? I see several potential issues that can happen with it.
First of all, there is no transactional integrity if a controller action method calls several CUD methods of the repository.
Secondly, if a read method returns an entity with lazy loaded properties, the context will be disposed by the time the property is accessed inside the controller.
I agree that was an interesting choice for demoware but the important thing to keep in mind was that this was in fact demoware. In actuality you would inject the context into your repository, ususally using an IoC of sorts such as ninject tied into a per request basis lifecycle. This ensures the transactional integrity you are talking about.
As for your second point, you cannot use lazy loaded properties well in a disconnected scenario such as MVC and they should be avoided all together.
Thanks Julie! Your courses always help me fill in those little gaps. I’ll echo Andrew’s query on the future of the repository pattern, and the continued use of HttpContext and EF6.
Great introductory course.
I think that there is a little bug in the DisconnectedRepository.cs in GetQueryableNinjasWithClan :
linqQuery = linqQuery.OrderBy(n => n.Name).Skip(page – 1).Take(pageSize);
shouldn’t it be Skip ((page-1) * pageSize) ?
anyway that’s minor.
Speaking of WebAPI I think its worth mentioning in your next course the fact the the entire Identity System of WebAPI 2.0 is based around Entity Framework , with a pattern similar to the repository pattern allowing the developers to switch easily to a different ORM provider.
looking forward to hear more advance concepts such as Performance, Tracing and Debugging tools and techniques for EF, overriding T4 templates to match a repository policy , the Generic Repository pattern in EF, more about Lazy loading techniques, caching strategies etc.
Thanks !
Fantastic intro course. Very educational.
In chapter “Fixing How EF Interprets Your Model” in Module “Creating a Code Based Model and Database” at minute mark 3:00. [Required] is added to the NinjaEquipment class. I must have missed something because [Required] is not being recognized. Any thoughts or help would be greatly appreciated.
Regards,
Endre Soltay
ha! you cover your bases! I just replied to your email as well. The ref you need is to System.ComponentModel.DataAnnotations. Also for others viewing the course, don’t forget about the discussion forum that Pluralsight provides. It’s a great place to find already answered questions (like this one) and ask questions. Just remember that the discussion is for questions about the course, not a replacement for google or stackoverflow for all of your random EF questions. 🙂