3

Я хотел бы задать этот быстрый вопрос о простой базе данных членства по умолчанию, которая поставляется с интернет-приложением asp.net mvc 4.5, мой вопрос в том, где она создает свои таблицы, когда Я сначала создаю нового пользователя, создает ли его таблицу в строке подключения по умолчанию (LocalDB)? и что, если я изменил строку подключения по умолчанию для использования пользовательской базы данных MS SQL Express, которая будет отражена, и эти таблицы будут созданы в моей новой базе данных?Как я могу изменить базу данных по умолчанию для простых таблиц членства

я заметил этот код в модели учетной записи по умолчанию, и в своем классе DbContext он относится по умолчанию соединения это был код Там:

public class UsersContext : DbContext 
{ 
    public UsersContext() : base("DefaultConnection") 
    { 
    } 

    public DbSet<UserProfile> UserProfiles { get; set; } 
} 

ответ

2

SimpleMembership получает инициализирован в InitializeSimpleMemberhsipAttribute.cs классе.

В MVC 4 шаблона проекта Интернета по умолчанию, перейдите в каталог фильтров, и в вышеприведенном классе вы найдете метод инициализации:

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", 
"UserId", "UserName", autoCreateTables: true); 

Это настройка по умолчанию, если вы хотите указать в другой базе данных сделать что-то вроде этого:

WebSecurity.InitializeDatabaseConnection("MyContext", "TableToPointTo", 
"UserIdColumn", "UserNameColumn", autoCreateTables: false); 

В вашем контексте класса:

public class MyContext : DbContext {...} 

и изменить имя в разделе Строки соединения внутри секции <configuration> в корневом файле web.config:

<connectionStrings> 
    <add name="MyContext" connectionString="..." /> 
</connectionStrings> 
+0

Или просто измените настройки для строки подключения DefaultConnection в файле web.config. –

+0

Вам не нужно было бы менять первый параметр в InitialiseDatabaseConnection() тоже - чтобы «изменить базу данных по умолчанию для простых таблиц членства», как спросил OP? – MattSull

+0

Первым параметром является имя строки подключения. Вы можете сохранить его как «DefaultConnection» и просто изменить значение connectinString. Если вы измените имя строки подключения, вам необходимо убедиться, что вы также измените ее в конструкторе для DbContext. –

1

Я искал в этой теме, так как я столкнулся с такой же проблемой. Я пытался все шаги, как -

  • Предоставление разрешения на SQLServer
  • Удаление [InitializeSimpleMembership] атрибут для контроллера счета наряду с добавлением соединения WebSecurity.InitializeDatabaseConnection в Global.asax.

Но ничего не работало.

Так пытался что-то еще -

  • Изменен источник данных в строке подключения по умолчанию на локальный.
  • Создал пустую БД в локальном хосте с именем, как MVCApp
  • Установить начальный каталог в строке подключения к MVCApp
  • Убрана AttachDBFilename из строки подключения

Так теперь мои строки подключения точки к локальная база данных. И это сработало.

Я до сих пор не знаю, почему реализация по умолчанию MS, которая работала всего пару дней назад, не работает. Но в этот момент я доволен работой.