Основная проблема: необходимо обновить базу данных SQL, чтобы иметь новые таблицы, поскольку я добавил новые сущности и наборы баз данных в слоях DataAccess и Entity.
Хорошо, мой проект выложен так. Решение> DataAccessLayerProject (контекст БД), ModelsProject (объекты), TesterProject (консольное приложение).
Консольное приложение - это способ запуска кода DataAccess и Entity.
Вот картинка для справки:
Мне нужны миграции, добавленные в DataAccessLayer, но появляется следующая ошибка:
PM> Add-Migration BazaarDBMigration
Начальный проект EntFrame.DataAccessLayer предназначен для платформы .NETStandard. Есть
нет среды выполнения, связанной с этой платформой, и проекты, нацеленные на нее
не может быть выполнен напрямую. Чтобы использовать основной пакет Entity Framework
Менеджер Консоли Инструменты с этим проектом, добавить исполняемый проект
нацеленный на .NET Framework или .NET Core, который ссылается на этот проект,
и установите его как стартовый проект; или обновите этот проект до
перекрестная цель .NET Framework или .NET Core. PM>
Хорошо, приложение консоли тестирования ссылается на этот проект. Давайте попробуем добавить это туда ..
PM> Add-Migration BazaarDBMigration В сборке не был найден DbContext
'EntFrame.TestDriver. Убедитесь, что вы используете правильную сборку
и что тип не является ни абстрактным, ни обобщенным.
Есть идеи? Заранее благодарим за ваше время и опыт. :)
РЕДАКТИРОВАТЬ: я пробовал решение из другого аналогичного вопроса, но добавление второй целевой рамки толкает проблемы еще дальше вниз по кроличьей норе. Я извиняюсь.
РЕДАКТИРОВАТЬ: Вот код из моего контекста
public class BazaarDBContext : DbContext
{
public DbSet<Student> Students { get; set; }
public DbSet<Course> Courses { get; set; }
public DbSet<Sandwhich> Sandwhiches { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
SqlConnectionStringBuilder cnnStringBuilder = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["BazaarDBContext"].ConnectionString);
cnnStringBuilder.UserID = ConfigurationManager.AppSettings["SQLConnectionUser"];
cnnStringBuilder.Password = ConfigurationManager.AppSettings["SQLConnectionPassword"];
string completedCnnString = cnnStringBuilder.ConnectionString;
optionsBuilder.UseSqlServer(completedCnnString);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//modelBuilder.Entity<Student>().HasKey(s => new { s.StudentID_PK, s.StudentID_PK1 });
modelBuilder.Entity<Student>().Property(s => s.Email).IsRequired();
base.OnModelCreating(modelBuilder);
}
}