For a windows application I would strongly suggest Windows Presentation Foundation as the start point as it gives you a fantastic division of concerns on what's UI and what's code, plus you can easily get a designer to give you the XAML and apply to your code without ever ruining your work as a developer.
Plus you will have the advantage in be easier to do a Silverlight version if you will ever need cross platforms (though the XAML for WPF is not the same for SL)
EF does really a good job this days, but there are much more ORM out there, like NHibernate, and better than that, if you know how to separate concerns, for example, create a Library that only handles the Database connection and queries, creating and using an Interface in your main program, using Inversion of Control, today is EF, but tomorrow can be something completely different and all you need to do is change a .dll
.