I'm setting up a new project using asp.net 5 and MVC 6, but I want to use Entity Framework 6 due to the missing features in EF 7.
I setup EF 6.1.3 and that is working.
Identity 3.0 depends on EF 7 so I have removed that and referenced in Identity 2.2 but I'm not sure where to go from here.
I'm not sure how this will be handled in the final release of ASP.NET 5, but in the case of ASP.NET 5 RC1 we have the following:
Firstly, you should go with Identity 3.0, as there is no way to use Identity 2.x in MVC 6 as far as I know.
Secondly, to make Identity 3.0 work with EF6, you need to implementation your own "EF6-friendly" versions of all classes under Microsoft.AspNet.Identity.EntityFramework namespace (the code is available here- https://github.com/aspnet/Identity/tree/3.0.0-rc1/src/Microsoft.AspNet.Identity.EntityFramework), as original classes are meant to work with EF7 only:
Your implementations should utilize EF6 instead of EF7. The process is pretty straightforward, but if you want to save time, I have shared my implementation here:
https://github.com/EntrypointSoft/AspNet.Identity.EntityFramework6
This comes in a few parts.
Microsoft.AspNet.Identity
3.0.0, but you will need to make your own UserStore
and RoleStore
. Personally, I copied the source of UserStore.cs and RoleStore.cs and made the tweaks necessary to use my EF6 User and Role classes. They have some additional features not used by default in EF6, such as normalizing usernames, email addresses, and role names that you'll need to support (or work around), but the interfaces only require POCOs, so you will be good there.services.AddIdentity<MyEf6User, MyEf6Role>()
.AddRoleStore<MyEf6RoleStore>()
.AddUserStore<MyEf6UserStore>();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With