美文网首页
EF-CodeFirst模式

EF-CodeFirst模式

作者: WxhShine | 来源:发表于2020-02-20 00:30 被阅读0次
EF.png

EF简介

​ EF全称是Entity Framework,是微软官方提供的ORM(Object Relational Mapping 对象关系映射)工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。开发人员使用Linq语言,对数据库操作如同操作Object对象一样省事。

​ EF由三种使用模式:1. Code First模式:由实体类生成数据库结构;2. Model First模式:通过数据库可视化设计器设计数据库,并生成实体类;3. Database First模式:由数据库生成实体类。

Code First模式

Code First模式我们称之为“代码优先”模式,是从EF4.1开始新建加入的功能。使用Code First模式进行EF开发时开发人员只需要编写对应的数据类(其实就是领域模型的实现过程),然后自动生成数据库。这样设计的好处在于我们可以针对概念模型进行所有数据操作而不必关系数据的存储关系,使我们可以更加自然的采用面向对象的方式进行面向数据的应用程序开发。

​ Code First模式的使用:

在Vs2017中新建一个名为EFDemo的控制台应用程序项目如下新建一个user类,和一个UserContext类:

EFDemo解决方案.png

User类:

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace EFDemo {
    public class User {
        [Key,Index]//设置Id为主键,并添加索引
        public int Id { get; set; }
        public string Name { get; set; }
        public string Password { get; set; }
    }
}

UserContext类:

using System.Data.Entity;
namespace EFDemo {
    public class UserContext :DbContext{
        public UserContext() : base("EFDemoConnectionString") { }

        public DbSet<User> User { get; set; }
    }
}

在建立UserContext中必须继承自 System.Data.Entity.DbContext类,才能有对数据的CRUD操作, 要使用DbContext类必须引用EntityFramework包.在NuGet中进行检索安装:

如下:

NuGet-EF.png

运行Main方法后,将自动生成数据库:

using System;
using System.Linq;

namespace EFDemo {
    class Program
    {
        static void Main(string[] args)
        {
            using(var context = new UserContext()) {
                var user = new User {
                    Id = 1,
                    Name = "user",
                    Password = "123",
                };
                context.User.Add(user);//新增一条数据
                context.SaveChanges();//保存更改.每一次对数据库的CUD操作都应该使用此方法
                var query = from a in context.User
                            where a.Id == 1
                            select a;//Linq 语句用户快速查询
                Console.Write($"UserId:{user.Id},UserName:{user.Name   },UserPassword:{user.Password}");
                Console.ReadKey();
            }
        }
    }
}

结果展示:

Console结果展示.png

数据库展示:

数据库展示1.png 数据库展示2.png

相关文章

  • EF-CodeFirst模式

    EF简介 ​ EF全称是Entity Framework,是微软官方提供的ORM(Object Relatio...

  • EF-CodeFirst数据库迁移时可能出现的几种错误- The

    相关:EF-CodeFirst实现过程+数据库迁移 enable-Migrations -ForceAdd-Mig...

  • EF-DBFirst实现过程

    时间:2017-03-09系列文章:EF-ModelFirst实现过程EF-CodeFirst实现过程(详细)+数...

  • EF-ModelFirst实现过程

    时间:2017-03-09系列文章:EF-DBFirst实现过程EF-CodeFirst实现过程(详细)+数据库迁...

  • EF-CodeFirst实现过程+数据库迁移

    系列文章: EF-ModelFirst实现过程+数据库迁移 http://www.jianshu.com/p/2a...

  • EF-CodeFirst:建表时单复数形式

    ​ 默认情况下,CodeFirst模式建立表格的名称是复数形式,比如User类建立表格后的名称是"Users"...

  • JS 设计模式

    工厂模式 单体模式 模块模式 代理模式 职责链模式 命令模式 模板方法模式 策略模式 发布-订阅模式 中介者模式 ...

  • iOS设计模式

    设计模式:MVC模式、单例模式、观察者模式、工厂模式、代理模式、策略模式、适配器模式、模版模式、外观模式、创建模式...

  • iOS知识点总结

    一、设计模式:MVC模式、单例模式、观察者模式、MVVM模式、工厂模式、代理模式、策略模式、适配器模式、模板模式、...

  • 常用设计模式 2018-09-15

    目录 代理模式 单例模式 命令模式 工厂模式 桥接模式 策略模式 装饰模式 观察者模式 门面模式 代理模式 静态代...

网友评论

      本文标题:EF-CodeFirst模式

      本文链接:https://www.haomeiwen.com/subject/ebhtqhtx.html