Как соединить консольное приложение с миграциями с приложением .Net MAUI
Не получилось создать миграции в самом проекте .Net MAUI, выдаёт такую ошибку:
Startup project 'FieldsMob' targets platform 'Android'. The Entity Framework Core Package Manager Console Tools don't support this platform. See https://aka.ms/efcore-docs-pmc-tfms for more information.
Нашла решение этой проблемы, что можно миграции создать в отдельном консольном приложении и потом использовать это приложение в основном проекте для подключения и работы с базой данных на SQL Server. Все необходимые пакеты Nuget установлены(версия 8.0) Код в консольном приложении Migration:
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
public class ProcessingIndustry
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_PI { get; set; }
public byte[] Picture { get; set; }
public string Name { get; set; }
public string Script { get; set; }
}
public class ExtractiveIndustry
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_EI { get; set; }
public byte[] Picture { get; set; }
public string Name { get; set; }
public string Script { get; set; }
}
public class Users
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_user { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Patronymic { get; set; }
public string Access { get; set; }
}
public class Authorizate
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_authorizate { get; set; }
public int ID_user { get; set; }
public string Login { get; set; }
public int Password { get; set; }
public virtual Users Users { get; set; }
}
public class Types_of_fields
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_types { get; set; }
public string Name { get; set; }
}
public class Areas
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_area { get; set; }
public string Name { get; set; }
}
public class Minerals
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_mineral { get; set; }
public int ID_EI { get; set; }
public string Name { get; set; }
public string Raw_material_quality { get; set; }
public string Suitability { get; set; }
}
public class Fields
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_field { get; set; }
public int ID_mineral { get; set; }
public int ID_types { get; set; }
public int ID_area { get; set; }
public byte[] Picture { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public Nullable<int> Year_of_study { get; set; }
public string Age { get; set; }
public string Conditions_of_exploitation { get; set; }
public string Stocks { get; set; }
public string Develop { get; set; }
public string DevelopNot { get; set; }
public virtual Areas Areas { get; set; }
public virtual Minerals Minerals { get; set; }
public virtual Types_of_fields Types_of_fields { get; set; }
}
public class FieldsContext : DbContext
{
public FieldsContext(DbContextOptions dbContextOptions) : base(dbContextOptions)
{
}
public virtual DbSet<Areas> Areas { get; set; }
public virtual DbSet<Authorizate> Authorizate { get; set; }
public virtual DbSet<ExtractiveIndustry> ExtractiveIndustry { get; set; }
public virtual DbSet<Fields> Fields { get; set; }
public virtual DbSet<Minerals> Minerals { get; set; }
public virtual DbSet<ProcessingIndustry> ProcessingIndustry { get; set; }
public virtual DbSet<Types_of_fields> Types_of_fields { get; set; }
public virtual DbSet<Users> Users { get; set; }
}
В основном проекте .Net MAUI в json файле прописана строчка подключения к бд, добавила приложение Migration в основной проект
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
builder.Services.AddDbContext<FieldsContext>(options =>
{
options.UseSqlServer(builder.Configuration.GetConnectionString("FieldsConnectionString")??
throw new InvalidOperationException("Connection 'FieldsConnectionString' is not found"));
});
Но при подключении миграций из консольного приложения выдает ошибку
dotnet ef migrations add InitialCreate --project "C:\Users\Veronika\source\repos\dpo\FieldsMob\Migration.csproj" --startup-project "C:\Users\Veronika\source\repos\dpo\FieldsMob\Migration.csproj" --msbuildprojectextensionspath "C:\Users\Veronika\source\repos\dpo\FieldsMob\Migration.csproj"
Ошибка:
MSBUILD : error MSB1003: укажите проект или файл решения. Текущий рабочий каталог не содержит проект или файл решения. Unable to retrieve project metadata. Ensure it's an SDK-style project. If you're using a custom BaseIntermediateOutputPath or MSBuildProjectExtensionsPath values, Use the --msbuildprojectextensionspath option.
Новичок на данной платформе,тяжеловато понять как исправить проблему, что делаю не так