Używam bazy danych z oficjalnym dostawcą połączeń MySql
. Próbuję go z następnym przykładzie projektu (rdzeń ASP.NET 1.0) na komputerze Mac:Aktualizacja bazy danych Dot Net Entity Framework nie powoduje utworzenia tabel w bazie danych mysql.
public class BloggingContext : DbContext
{
public BloggingContext(DbContextOptions<BloggingContext> options)
: base(options)
{ }
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
I w moim Startup.cs
public void ConfigureServices(IServiceCollection services)
{
var connection = @"server=localhost;userid=efcore;port=3306;database=blogsFinal;sslmode=none;";
services.AddDbContext<BloggingContext>(options => options.UseMySQL(connection));
// Add framework services.
services.AddMvc();
}
W moim project.json również dodać
"dependencies": {
...
"MySql.Data.EntityFrameworkCore": "7.0.5-ir21",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
}
}
i
"tools": {
...,
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
Kiedy biegnę dotnet ef migrations add v1
, działa dobrze i tworzy pliki migracji, ale kiedy wykonać dotnet ef database update
baza danych zostanie utworzona, ale nie tabele i rzuca to wyjście
System.NotImplementedException: The method or operation is not implemented.
at MySQL.Data.EntityFrameworkCore.Migrations.Internal.MySQLHistoryRepository.get_ExistsSql()
at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrations()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
at Microsoft.EntityFrameworkCore.Tools.Cli.DatabaseUpdateCommand.<>c__DisplayClass0_0.<Configure>b__0()
at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String[] args)
The method or operation is not implemented.
mógłbyś pisać kod, który jest wykonywany dla wspomnianej aktualizacji, która jest błąd rzucania? – A3006
To jest kod [link] (https://github.com/careuno/newtestEfcoreMysql) błąd jest po wykonaniu aktualizacji bazy danych dotnet ef –