With some experience with asp.net mvc identity I have to say that it is naturally meant (by conventions) for code first approach. you have to apply some of your hacks to use it with database first. if you search on the web you would find all sort of user derived techniques of using it with database first
I have used asp.net identity with database first approach using EF with two connection strings and single database. I manually transferred all the users tables which i created by registering the users to my main database which contains my others tables as well
<connectionStrings>
<add name="DefaultConnection" connectionString="data source=localhost;database=LocalLoanDb;user id=sa;password=123456;" providerName="System.Data.SqlClient" />
<add name="LocalLoanDbEntities" connectionString="metadata=res://*/Models.LoanDataModel.csdl|res://*/Models.LoanDataModel.ssdl|res://*/Models.LoanDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost;initial catalog=LocalLoanDb;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
so in this way defaultconnection was meant for identity tables and i use other connection string to connect with my project's repository. so without any architectural change in the identity framework i managed to use it very happily in my application.