Zastanawiam się czy jest możliwość zmiany bazy danych używanej w SimpleMembership. Aktualnie mam 2 connectionStringi w web.config:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-AnimeWeb-20131218114309;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-AnimeWeb-20131218114309.mdf" providerName="System.Data.SqlClient" />
<add name="MainDatabaseEntities" connectionString="metadata=res://*/Models.MainDatabaseModel.csdl|res://*/Models.MainDatabaseModel.ssdl|res://*/Models.MainDatabaseModel.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\MainDatabase.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Niestety jeśli tak zrobię to nie mogę wyświetlić np. Wszystkich postów konkretnego użytkownika. Dlatego potrzebuję by wszystkie moje dane i użytkownicy byli w tej samej bazie danych. Do tego celu stworzyłem tabele UserProfile, webpages_Membership, webpages_OAuthMembership, webpages_Roles, webpages_UsersInRoles w MainDatabase identycznie jak to jest w DefaultConnection.
Następnie w AccountModel.cs zmieniłem
public UsersContext()
: base("DefaultConnection")
{
na:
public UsersContext()
: base("MainDatabaseEntities")
{
oraz w InitializeSimpleMembershipAttribute.cs zmieniłem
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
na:
WebSecurity.InitializeDatabaseConnection("MainDatabaseEntities", "UserProfile", "UserId", "UserName", autoCreateTables: true);
Niestety po tych zmianach wyskakuje error:
The ASP.NET Simple Membership database could not be initialized
Ma ktoś może jakieś pomysły jak to rozwiązać? Gdyby nie to, że musze mieć w bazie danych połączenie wiele do wielu z użytkownikami to bym tego nawet nie ruszał.