NET实体框架数据库更新未在MySQL数据库中创建表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了NET实体框架数据库更新未在MySQL数据库中创建表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2454字,纯文字阅读大概需要4分钟。
内容图文
我使用MySql作为官方连接提供程序的数据库.我正在Mac上的下一个项目示例(asp.net core 1.0)中进行尝试:
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; }
}
在我的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();
}
在我的project.json中,我还添加
"dependencies": {
...
"MySql.Data.EntityFrameworkCore": "7.0.5-ir21",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
}
}
和
"tools": {
...,
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
当我运行dotnet ef迁移时,添加v1可以正常工作并创建迁移文件,但是当我执行dotnet ef数据库更新时,会创建数据库,但不会创建表并抛出此输出
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.
解决方法:
例外说明了. Oracle的官方MySQL提供程序尚不支持其迁移或脚手架.
它将仅在第一次执行context.Database.EnsureCreated()时创建数据库.此后所做的任何更改将不会应用.您必须删除整个数据库并创建一个新的数据库,从而丢失所有数据.
对Oracle表示感谢;)
更新
在7.0.6-IR31的发行版中,可以进行package迁移,但是脚手架仍然无法运行.
内容总结
以上是互联网集市为您收集整理的NET实体框架数据库更新未在MySQL数据库中创建表全部内容,希望文章能够帮你解决NET实体框架数据库更新未在MySQL数据库中创建表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。