Задать вопрос

EF CodeFirst: из-за чего ошибка при создании БД (не хочет создавать)?

Всем привет. Пытаюсь создать БД:
Есть 2 модели:
public class Player
    {
        public int PlayerId { get; set; }
        public int TeamId { get; set; }
        public string Name { get; set; }
        public string Position { get; set; }
        public int Age { get; set; }
        public virtual Team Team { get; set; }
    }
 public class Team
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Coach { get; set; }
        public List<Player> Player { get; set; }
    }


Класс DbEntity

public class DbEntity : DbContext
    {
        public DbSet<Player> Players { get; set; }
        public DbSet<Team> Teams { get; set; }
    }


Инициализация:
Database.SetInitializer(new CreateDatabaseIfNotExists<DbEntity>());


Строка подключения:
<connectionStrings>
    <add name="DbEntity"
         connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename='|DataDirectory|\Footbal.mdf';Integrated Security=True"
          providerName="System.Data.SqlClient" />
  </connectionStrings>

ну и в контроллере инициализирую объект класса DbEntity
После запуска приложения БД не создается...

Возможно, делаю что-то не так...только недавно начал знакомиться с EF,документации нормальной мало...верчусь...ищу по кусочкам и пробую
  • Вопрос задан
  • 2573 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Gilga
Database.SetInitializer(new CreateDatabaseIfNotExists<DbEntity>());

Это настройка, что делать с бд при первом запросе.
using (DbEntitycontext = new DbEntity())
            {
                var query = context.Players.ToList();
            }


Явно создать бд таким способом:
using (DbEntitycontext = new DbEntity())
            {
                context.Database.Create();
            }
Ответ написан
Комментировать
Эм... вообще не уверен, что строку подключения вот так вот напишите:

add name="MyDatabase" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyDb;Integrated Security=True" providerName="System.Data.SqlClient" />


MyDatabase - имя класса контекста
InitalCatalog=MyDb - имя базы данных.

И как правильно написали выше, для создания базы нужно выполнить с ней какое-нибудь действие.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы