一、准备工作
    使用NUGET安装Entity Framework 6,下载MySql Connector/Net 6.9.5
 
二、创建实体
    我们在下面创建了两个类(博客和文章),并使用了虚拟属性标识了他们的关系。这使得实体框架具有了延迟加载特性,延迟加载意味着从数据库加载内容的时候将会自动加载关联实体的内容(除了我们设置了禁用延迟加载)。
 

public class Blog
{
public int BlogId { get; set; } public string Name { get; set; } public virtual 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 virtual Blog Blog { get; set; }
}
三、创建Context&生成数据库
    新建一个Blogging类继承DbContext,在构造函数指定使用的数据库连接,如果不指定默认是使用MS SQL。

public class BloggingContext : DbContext
{
public BloggingContext()
: base("MySqlServer")
{ } public DbSet<Blog> Blogs { get; set; } public DbSet<Post> Posts { get; set; }
}
读取和写入数据
    运行这个应用程序的时候,EF会自动帮我们创建数据库如果还没有创建数据库。

class Program
{
static void Main(string[] args)
{
using (BloggingContext db = new BloggingContext())
{
db.Blogs.Add(new Blog { Name = "Another Blog" });
db.SaveChanges(); foreach (var blog in db.Blogs)
{
Console.WriteLine(blog.Name);
}
} Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
当执行完成我们就可以去查看生成的数据库
生成如下
 
 
五、更改数据模型
在Package Manager Console输入 Eable-Migrations 开启EF迁移功能
运行成功之后会在我们的项目文件下增加Migrations文件夹以及Configuration.cs,这个文件包含迁移Blogging的设置。
 
对Blogs类增加Url属性,在刚才的PMC输入 PM> Add-Migration AddUrl 会报下面错误
No MigrationSqlGenerator found for provider 'MySql.Data.MySqlClient'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators.
 
在重新运行上面命令正确生成类文件
 
其实到了这里还没有真正的更新数据库我们还需要执行 Update-Database -Verbose
查看数据库已经成功更新
 
六、Fluent API
我们使用这个API来修改数据库的表设置
在执行修改的迁移命令
成功更新数据库
 

EF 6.0 Code First 迁移MySql数据库的更多相关文章

  1. EntityFramework 6.0< Code First > 连接 Mysql数据库(转)

    http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多 ...

  2. EntityFramework 6.0< Code First > 连接 Mysql数据库

    网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多了.找了很久,总算是配置好了,现在分享一下. 一,安装:     1.开发环境: VS2013与EF6 ...

  3. 转载:EntityFramework 6.0< Code First > 连接 Mysql数据库

    转载自:http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转 ...

  4. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

  5. Code First操作Mysql数据库

    前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...

  6. 使用 EF Power Tool Code Frist 生成 Mysql 实体

    原文:使用 EF Power Tool Code Frist 生成 Mysql 实体 1,在要生成的项目上右键   2,   3,   4,   5,  生成后的效果     已知问题: 1,在Mys ...

  7. System.InvalidOperationException: 支持“XXX”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

    System.InvalidOperationException: 支持“XXX”上下文的模型已在数据库创建后发生更改.请考虑使用 Code First 迁移更新数据库(http://go.micro ...

  8. 支持“***Context”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

    在用VS进行MVC开发的过程中遇到如下问题: 支持“***Context”上下文的模型已在数据库创建后发生更改.请考虑使用 Code First 迁移更新数据库(http://go.microsoft ...

  9. "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库。

    一,在我使用自动生成数据库的时候,当你改变了数据库就会出现下面问题 "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改. ...

随机推荐

  1. Android Studio如何删除module

    当你想在Android Studio中删除某个module时,大家习惯性的做法都是选中要删除的module,右键去找delete.但是 在Android Studio中你选中module,右键会发现没 ...

  2. Android 如何检索Android设备的唯一ID

    关于本文档 Android的开发者在一些特定情况下都需要知道手机中的唯一设备ID.例如,跟踪应用程序的安装,生成用于复制保护的DRM时需要使用设备的唯一ID.在本文档结尾处提供了作为参考的示例代码片段 ...

  3. 解决:insert Vodafone sim card,open the mms read report,when receive the read report,cann&#39;t download..

    insert Vodafone sim card,open the mms read report,when receive the read report,cann't download the m ...

  4. gdal1.10编译经验

    作者:朱金灿 来源:http://blog.csdn.net/clever101 集成了一些扩展库,使用makefile编译,出现了一个链接错误: libcmt.lib(crt0.obj): erro ...

  5. CSS(网页样式语言)基础

    所谓全栈,个体可以独立地完成系统的设计.开发.测试.部署以及运维.打通一个领域从无到有的全过程. 为什么会有 markdown 文本编辑显示工具呢,因为 html 太重了.markdown 是 htm ...

  6. java学习笔记(2)——函数

    int a = 1; a = a++; 1,取出a的值1作为a++表达式的值(a++表达式等于1) 2,a增加1变为2 3,执行赋值运算,a++表达式的值再赋给a,a又成为了1. ---------- ...

  7. PBS 作业调度应用

    PBS(Portable Batch System),最初由 NASA 的 Ames 研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理(Portable Batch Pr ...

  8. 大班模型行为PK(总结)

    行为类模式包括责任链模式.命令模式.解释器模式.迭代模式.中介模式.备忘录模式.观察者模式.State模式.策略模式.模板方法.Visitor模式,我去,许多.. .主要有以下挑几个easy混乱和控制 ...

  9. 【码云周刊第 22 期】GO :互联网时代的 C 语言!

    技术干货 标签:独家译文 1.Go 很好,为什么我们不使用它? 在这篇文章中,我将分享一下为什么我认为它很棒,使用它的一些缺点,以及为什么它还不是我们 Zapier 堆栈中的一部分. 2.从 Scal ...

  10. XF Grid使用-两行两列-跟WPF不同

    <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http:/ ...