Я пытался работать с подходом Code First в новой Entity Framework, но таблица в базе данных не создается автоматически.
Я уже создал базу данных (в папке App_Code) и использую подход Code First. Объясните мне, мне нужно сначала создать таблицы в БД или они должны быть созданы автоматически?
Ниже приведено описание моего проекта
В Web.config у меня есть 2 строки подключения:
add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient"
add name="MyDB"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI; AttachDBFilename=|DataDirectory|MyDB.mdf;User Instance=true"
providerName="System.Data.SqlClient"
Класс, описывающий мой объект (в папке Model)
public class UserProfile
{
[Key]
[Required]
public string PhoneNumber { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string MiddleName { get; set; }
[Required]
public string Surname { get; set; }
[Required]
public DateTime Birthday { get; set; }
public int PositionId { get; set; }
public string Boss { get; set; }
[Required]
public int CompanyId { get; set; }
}
Класс DbContext (в папке Model)
public class MyDB : DbContext
{
//public MyDB() : base("MyDB") { }
public DbSet<UserProfile> UserProfiles { get; set; }
}
В контроллере, пытающемся вставить в базу данных новую (& первую) запись (таблица еще не существует).
UserProfile newProfile = new UserProfile();
newProfile.CompanyId = 1;
newProfile.PhoneNumber = model.PhoneNumber;
newProfile.FirstName = model.FirstName;
newProfile.MiddleName = model.MiddleName;
newProfile.Surname = model.Surname;
newProfile.Birthday = Convert.ToDateTime(model.Birthday);
var myDb = new Models.MyDB();
myDb.UserProfiles.Add(newProfile);
myDb.SaveChanges();
Когда я пытаюсь позвонить SaveChanges()
, я получаю исключение:
Сведения об исключении: System.Data.SqlClient.SqlException: Неверное имя объекта 'dbo.UserProfiles'.