2015-06-22 3 views
1

Я создал простую прикладную программу ASP.NET MVC4 с использованием первого подхода EntityFramework Code. Класс сущностей, как показано ниже:Не удается найти автоматически создаваемую базу данных

public class Album 
{ 
    [Key] 
    public int AblumId { get; set; } 
    public decimal Price { get; set; } 
    public string Title { get; set; } 

} 

public class MusicContext : DbContext 
{ 
    public DbSet<Album> Albums { get; set; } 
} 

И web.config соединительные детали, как показано ниже

<connectionStrings> 
    <add name="MusicContext" connectionString="Data Source=localhost;Integrated Security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

приложение работает отлично, и я могу добавить, удалить, отредактировать альбом записи, но я не могу для поиска базы данных. Когда я проверил экземпляр SQL-сервера с помощью SSMS, базы данных не создано. Я не указал значение «Начальный каталог» (DBName) в файле web.config и не дал имя DB во время создания Контекста в коде. Я даже проверял имя БД во время выполнения, но возвращает пустую строку, как показано на снимке экрана ниже. Я даже проверил SQL Express, никаких созданных там БД и даже не на моем другом экземпляре. Итак, где я могу найти автоматически созданную БД. Я уверен, что DB хранится где-то, потому что записи хранятся и извлекаются без каких-либо ошибок.

enter image description here

+0

проверить в app_data, не забудьте нажать «показать все файлы» –

+0

@Roman благодарит за ответ. Я уже проверил папку APP_Data, каталог пуст. – jaycyborg

ответ

3

Если вы не указали имя базы данных, то соединение будет использовать базу данных по умолчанию для пользователя, в данном случае это интегрированная безопасность, так что ваш Логин для Windows. Поскольку у вас, вероятно, есть полный системный администратор на сервере, база данных по умолчанию будет master, поэтому вы найдете там все свои таблицы.

Для немного больше разъяснений, master представляет собой базу данных системы, и как таковой, чтобы увидеть его в SSMS вам нужно будет перейти к Server ->Databases ->System Databases.

Чтобы устранить эту проблему, вы можете:

  1. Укажите имя базы данных в строке подключения.
  2. Измените базу данных по умолчанию для своего пользователя.

Я бы порекомендовал указать имя базы данных, хотя, если у вас нет необходимости динамически изменять базу данных для входа в систему, тогда всегда лучше быть явным в таких вещах.

+0

это было отличное объяснение. Я проверю базу данных master, к сожалению, могу это сделать только завтра. Я отвечу, как только я получу доступ завтра. Но мне любопытно узнать, почему имя базы данных отображается как пустая строка в окне просмотра при отладке кода? – jaycyborg

+0

Имя базы данных - это то, что вы указали в строке соединения, а не то, к чему подключается соединение. Помните, что текущая база данных может измениться. – DavidG

+0

О, хорошо, спасибо за разъяснение :) Будет проверять мастер-БД. – jaycyborg

0

Возможно, в нем создано локальное БД. Goto Просмотрите и выберите «Проводник сервера», затем просмотрите раздел «Связи данных».

Смежные вопросы