Entity Framework не создает БД с указанным именем, а создает собственное имя, почему? - PullRequest
0 голосов
/ 20 марта 2019

нужна помощь, я новичок в MVC и EF

Итак, я пытаюсь создать БД, используя первый подход к коду. Я указал следующую строку подключения

<add connectionString="Data Source=(local);Initial Catalog=SalesERPDB;Integrated Security=True"
        name="SalesERPDAL" 
         providerName="System.Data.SqlClient"/>
  </connectionStrings>

и я надеялся, что EF создаст БД с именем SalesERPDB. Вместо этого он создал БД со следующим именем «MVC.DataAccessLayer.SalesERPDAL». где MVC.DataAccessLayer - это пространство имен, в котором объявлен SalesERPDAL (класс), который наследует DBcontext.

короче EF присваивает базе данных полное имя класса, который наследует DBcontext.

namespace MVC.DataAccessLayer
{
    public class SalesERPDAL : DbContext //i think it will help in interacting with DB
    {
        protected override void OnModelCreating(DbModelBuilder modelBuilder) //i think used to build a model
        {
            modelBuilder.Entity<Employee>().ToTable("TblEmployee");
            base.OnModelCreating(modelBuilder);
        }

        public DbSet<Employee> DALEmployees { get; set; } //Dbset will represent all the employees that can be queried from the database.

    }
}

У меня есть 2 вопроса:

  1. Почему оно принимает определенное имя вместо имени строки подключения?
  2. Как я могу изменить свой код так, чтобы я получил доступ к имени моего сервера, как я хочу?

Извините, если это повторный вопрос.

1 Ответ

2 голосов
/ 20 марта 2019
  1. Ваш метод конструктора отсутствует.Имя ConnectionString следует указывать в качестве параметра базового метода, чтобы ваше приложение могло знать, с каким именем создать базу данных.В противном случае он создает базу данных с именем вашего класса класса DbContext (MVC.DataAccessLayer.SalesERPDAL).

  2. Можно добавить метод конструктора, например:

    public SalesERPDAL() : base("SalesERPDAL") { }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...