EF深入系列--Code First

首先是创建DbContext,有两种途径

①手动编写DbContext代码,同时还要记得去配置文件中添加connectionStrings

public class BooksContext : DbContext
{
    public BooksContext() : base("name=BooksContext")
    {

    }

    public DbSet<Book> Books { get; set; }
}

②通过创建Controller指定自动生成DbContext

在创建完一个Model之后,右击Controller文件夹(MVC项目的话),新建Controller,弹出这样的弹窗

这样添加了Controller也会自动创建一个Context类,同时webconfig也会自动添加connectionString

然后在包管理器控制台输入enable-migrations,会自动创建/Migrations/Configuration.cs文件

为了启用Code First,需要将Configuration类的构造函数中AutomaticMigrationsEnabled设为true

初次建库可以NPM执行 add-migration Initial

若数据库有更改 可以执行 update-database ,会执行Configuration.Seed函数(函数内放入数据迁移的代码)

生成的Configuration.cs文件

internal sealed class Configuration : DbMigrationsConfiguration<Models.BooksContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(Models.BooksContext context)
    {
        context.Authors.AddOrUpdate(new Author[] {
            new Author() { AuthorId = 1, Name = "Ralls, Kim" },
            new Author() { AuthorId = 2, Name = "Corets, Eva" }
        });

        context.Books.AddOrUpdate(new Book[] {
            new Book() { BookId = 1,  Title= "Midnight Rain", Genre = "Fantasy",
            PublishDate = new DateTime(2000, 12, 16), AuthorId = 1, Description =
            "A former architect battles an evil sorceress.", Price = 14.95M
            }
        });
    }
}

关于Code First的相关文章:msdn

时间: 2024-10-16 14:09:13

EF深入系列--Code First的相关文章

EF中的开放式并发(EF基础系列)

好久没更新EF这个系列了,现在又重新开始. 这次学习,开放式并发.首先拿出数据库脚本: 说明一下,这个数据库脚本是之前的章节中稍作修改的: USE [SchoolDB] GO /****** Object: Table [dbo].[Student] Script Date: 11/30/2015 21:42:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Student]( [Stu

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

原文:使用 EF Power Tool Code Frist 生成 Mysql 实体 1,在要生成的项目上右键   2,   3,   4,   5,  生成后的效果     已知问题: 1,在Mysql数据表中 tinyint(1) ,会被映射成为 C# bool ,这样造成一些数据信息的丢失. 这个问题应该是EF 工具的问题,暂时没有找到解决方案.      手工去修改生成的实体是不经济的,下次再更新时候,又会变成 bool型 .      所以解决的办法就是修改数据库字段型 ,一般情况下,

EF中的Code First

EF中的Code First   一些概念 ? POCO POCO(Plain Old CLR Object)的概念是从java的POJO借用而来,而两者的含义是一致的,不同的仅仅是使用的语言不一样.所以POCO的解释就是“Plain Old C# Object”.POJO的内在含义是指那些没有从任何类继承.也没有实现任何接口,更没有被其它框架侵入的对象. ? PO PO是指持久对象(persistant object持久对象).持久对象实际上必须对应数据库中的entity,所以和POJO有所区

EF开发模式(EF基础系列篇9)

EF有三种开发的模式: 1.Code First 2.Model First 3.Database First Code First:在Code First方法中,你完全避免了直接操作实体设计器(EDMX).我们开始自己写领域类,用这些领域类来生成数据库. Model First:在Model First中,你直接通过实体数据模型(EDMX)创建实体,关系,层级继承,然后根据你的Model生成数据库: Database First:根据已经存在的数据库,然后添加实体数据模型,从数据库中创建生成了

EF 下的code fist 模式编程

EF 分两种模式 codefirst(就是不知道数据是啥,也没有数据库)  和 database fist (数据已经设计好了) 首先打开vs  新建一个项目 创建一个控制台程序 然后 新建一个Teacher 类 public class Teacher { public int TeacherId { get; set; } public string Name { get; set; } public string Country { get; set; } public string De

Code-First 约定(EF Code-First系列)

前面,我们已经了解了Code-First利用领域类,怎么为我们创建数据库的简单示例.现在我们来学习一下Code-First约定吧. 什么是约定 约定说白了,就是基于一套规矩办事,这里就是基于你定义好的领域类,然后根据默认的规矩来配置概念模型.Code-First约定定义在这个命名空间下面: System.Data.Entity.ModelConfiguration.Conventions 现在来大致浏览一下都有哪些约定吧: 类型发现 在前面的章节中,我们在上下文类中创建了DbSet属性的类集合,

安装Entity Framework(EF基础系列篇4)

Entity Framework 5.0 API是分布在两个地方:NuGet和.NET Framework中,这个.NET framework 4.0/4.5包含EF核心的API,然而通过NuGet包获取的EntityFramework.dll包含EF 5.0特别的特性:EF6.0中不是分开的: 在这个基础的系列课程中,我将会使用EF 6.0,这个最新的EF版本来学习, 学习EF,首先要安装下面的工具: .NET Framework 4.5 Visual Studio 2012/2013/201

EF 学习系列二 数据库表的创建和表关系配置(Fluent API、Data Annotations、约定)

上一篇写了<Entity Farmework领域建模方式 3种编程方式>,现在就Code First 继续学习 1.数据库表的创建 新建一个MVC的项目,在引用右击管理NuGet程序包,点击浏览搜索EF安装,我这里主要是EF6.0 以上的学习 所以都安装6.0 以上的版本 接下来在Model文件夹下面创建一个Customer类 public class Customer { public int ID { get; set; } public string Name { get; set; }

EF是啥?(EF基础系列)

EF产生的背景: 编写ADO.NET访问数据的代码,是沉闷而枯燥的,所以微软提供了一个对象关系映射框架(我们称之为EF),通过EF可以自动帮助我们的程序生成相关数据库的活动. EF的定义: EF是一个对象关系映射的框架,它保证程序员把相关的数据作为特别的领域对象,减少了程序员编写大量的访问数据库的代码.开发人员,使用LINQ来查询,检索,操作数据为强类型对象来处理.EF框架提供了更改跟踪,身份识别,懒加载,和查询转换,所以开发人员可以专注于他们的程序中的逻辑代码,而不是数据访问基础. EF的三个