C# Xamarin.Forms Ошибка миграции EntityFramework
Создал проект Xamarin.Forms и попытался подключить EF с миграцией. Мои действия:
- Создал проект "Библиотека классов" .NET Standard и подключил библиотеки EF Core.
- Написал туда следующий код:
class ApplicationDbContext : DbContext, IDesignTimeDbContextFactory<ApplicationDbContext>
{
public DbSet<Project> Projects { get; set; }
public DbSet<Employee> Workers { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }
public ApplicationDbContext()
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<Employee>()
.HasMany(e => e.EmployeeProjects)
.WithOne(p => p.Employee);
modelBuilder
.Entity<Employee>()
.HasMany(e => e.LeaderProjects)
.WithOne(p => p.Leader);
modelBuilder
.Entity<Employee>()
.HasMany(e => e.ExecutorProjects)
.WithMany(p => p.Executor);
}
public ApplicationDbContext CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder<ApplicationDbContext>();
optionsBuilder.UseSqlite(@"Filename=");
return new ApplicationDbContext(optionsBuilder.Options);
}
}
- Создал новый проект "Console .NET 5". Добавил зависимости, а именно "Библиотека классов".
- В консольном менеджере пакетов пишу Add-migrations Initial
- Если убрать интерфейс, то при попытке создать миграцию выдает ошибку "Unable to create an object of type 'ApplicationDbContext'. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728" Реализовал интерфейс, но проблема в том, что строку подключения приходится хардкодить. Как сделать так, чтобы я мог объявить строку подключения из проекта Android и чтоб при этом успешно проходила миграция? Еще проблема заключается в том, что я не знаю какая строка подключения должна быть у Android