EF-CodeFirst模式

简介: EF-CodeFirst模式

查看更新SQL:在 Package Manager Console 中运行命令 Update-Database -Script -SourceMigration: $InitialDatabase

model中使用枚举类型,查询结果返回枚举的字符串

[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public InterViewState state { set; get; }

数据字典类中,如果有枚举类型并且希望序列化后的json中显示的是枚举的名称,需要在字段上加上:[JsonConverter(typeof(StringEnumConverter))]


例如:


[JsonConverter(typeof(StringEnumConverter))]
public EnumCarStockState stockState { get; set; }


1.添加Newtonsoft.Json


2.添加MySql EF支持


3.开发Model类

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestEFCodeFirst.Model
{
    [Table("yf_Order")]
    public class Order
    {
        public int Id { set; get; }
        [StringLength(50)]
        public string OrderNo { set; get; }
        public int UserId { set; get; }
        [ForeignKey("UserId")]
        public virtual User User { set; get; }
    }
}

4.在DbContext中关联Model

20160818165852910.png

5.数据迁移

  <1>添加DbContext数据迁移支持

    [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]

20160818165618536.png

<2>工具——NuGet包管理器——程序包管理器控制台


       1>Enable-Migrations


       2>Add-Migration xxx


       3>Update-Database


  <3> 获取数据库更改sql脚本


得到SQL脚本


 如果其它开发人员也希望在他们自己的机器上拥有这些更改,他们只需在我们 check in 代码至 source control 的时候做一次同步即可,一旦他们拥有了这些迁移,只需运行命令 Update-Database 就可以把这些更改应用于本地。但是如果我们想把这些更改推送至测试服务器或生产服务器,我们也许需要一份 SQL 脚本提供给 DBA


在运行 Update-Database 的时候指定 -Specify 标记,我们就能够使得这些更改被写入一个脚本中而不是被应用,我们同时也会为此脚本指定源迁移和目标迁移,例如我们希望产生的脚本是从一个空数据库($InitialDatabase)到最新的版本(AddPostAbstract 迁移);(注意:如果你没有指定目标迁移,那么迁移将始终更新至最新版本;如果你没有指定源迁移,那么迁移将以数据库目前状态为初始)

在 Package Manager Console 中运行命令 Update-Database -Script -SourceMigration: $InitialDatabase


相关文章
|
7月前
|
SQL 数据库
【Entity Framework】如何理解EF中的级联删除
【Entity Framework】如何理解EF中的级联删除
65 0
|
SQL 数据库连接 数据库
『SQLite』C#/.NET EF+SQLite.CodeFirst——真正实现CodeFirst
📣读完这篇文章里你能收获到 - 本文详细介绍了SQLite实现CodeFirst的方式 - 通过代码配合图文的形式进行讲解
598 0
『SQLite』C#/.NET EF+SQLite.CodeFirst——真正实现CodeFirst
|
数据可视化 数据库 C++
EF-CodeFirst实现过程+数据库迁移
EF-CodeFirst实现过程+数据库迁移
EF-CodeFirst实现过程+数据库迁移
|
数据库
EF CodeFirst 创建数据库
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。    十年河东十年河西,莫欺少年穷    学无止境,精益求精    话说EF支持三种模式:Code First   Model First   DataBase First,微软最新的EF框架,也就是EF7舍弃了Model First 和 DataBase First,咱们作为最底层的程序员必须跟着‘党’的走,既然微软都放弃了Model First 和 Database First,那么我们也应当跟着‘党’的路线走,表示坚决拥护‘党’的决定,坚决走Code First路线。
1390 0
|
数据建模 数据库 索引
EF CodeFirst增删改查之‘CRUD’
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。    十年河东十年河西,莫欺少年穷    学无止境,精益求精    本篇旨在学习EF增删改查四大操作    上一节讲述了EF CodeFirst 创建数据库,本节继续引用上一节的相关类学习EF的CRU...
1223 0
|
数据库
EF CodeFirst 如何通过配置自动创建数据库<当模型改变时>
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。    十年河东十年河西,莫欺少年穷    学无止境,精益求精    本篇为进阶篇,也是弥补自己之前没搞明白的地方,惭愧惭愧。
1723 0
|
数据库 SQL 关系型数据库