ASP.NET vNext总结:EntityFramework7

ASP.NET vNext总结:EntityFramework7

源码:http://www.jinhusns.com/Products/Download/?type=xcj

1.概述

     
关于EF7之前的本如何?这里虽不再扯了。更不见面和别人争论EF的习性如何?好比同将宝刀,在善用其的巨匠和未善于用它的低手使用威力不同之。

     
如题,这里大概说一样下EF7,同样它还处于beta版本阶段,如果您遇上bug或效益转变等疑团,不要怪了。

      EF7就支持CodeFrist代
码优先的投射方式,将来她可支持更强数据库,如曾经指向SQLLite嵌入式数据库支持好好,甚至牛逼得还要支持NoSQL(非关系型数据库)。当然,
我为非见面说别的ORM就Out,Old了。一样东西用是并产生一些总人口采用,必然发生它的价,从哲学上吧,存在就合理!

     
EF只是封装.Net操作及做客数据库(也尽管是以ADO.NET基础及),但若首先把它算映射工具,这吗是其的产出第一初衷解决对对象模型与关系型数据模型映射,至于你无要是在一齐性能,你得EF中以旧之SQL语句及储存过程及ADO.NET底层技术。

      显然EF7非是占据属于ASP.NET
vNext中利用,但准介绍是专题系列,体验于vNext项目模板被运用。

2.创造项目

      在前面文章介绍了之”vNext“解决方案及,右键:添加-》新建项目-》Visual
C#-》ASP.NET 5 Console
Application,其项目“名称”:vNext.ConsoleAppTemplate,并把它们”设为项目启动项“。

      这里先坐vNext模板的控制台项目介绍,在后边完整的品种实战中,再于Web项目蒙“研究”!

3.安装EF及设置commands

     打开project.json:

     图片 1

     注:commands的ef配置是开行ef迁移用的,后面也会证明的。

4.添加模型类及左右文类

      先项目根目录下,创建Models文件夹,在那中间上加三独八九不离十公事:

      图片 2

     
Role.cs代码:

 

using System.Collections.Generic;

 

namespace vNext.ConsoleAppTemplate.Models

{

    /// <summary>

    /// 角色实体类

    /// </summary>

    public class Role

    {

        public int ID { get; set; }

        public string Name { get; set; }

 

        //导航属性

        public ICollection<User> Users { get; set; }

    }

}

 

      User.cs代码:

 

namespace vNext.ConsoleAppTemplate.Models

{

    /// <summary>

    /// 用户实体类

    /// </summary>

    public class User

    {

        public int ID { get; set; }

 

        public string Name { get; set; }

 

        public Gender Gender { get; set; }

 

        //外键属性

        public int RoleID { get; set; }

 

        //导航属性

        public Role Role { get; set; }

    }

 

    /// <summary>

    /// 性别 枚举类型

    /// </summary>

    public enum Gender { man, woman, secrecy }

}

 

     
EFContext.cs代码:

using Microsoft.Data.Entity;
using Microsoft.Data.Entity.Metadata;

namespace vNext.ConsoleAppTemplate.Models
{
   /// <summary>
   /// 数据库及文类
   /// </summary>
   public class EFDbContext : DbContext
   {
       public DbSet<Role> Roles { get; set; }
       public DbSet<User> Users { get; set; }

       protected override void OnConfiguring(DbContextOptions options)
       {
           //数据库连接字符串
         
 options.UseSqlServer(“Server=.;Database=TestDB;UID=sa;PWD=123456”);
       }
       protected override void OnModelCreating(ModelBuilder
modelBuilder)
       {
           //多对平关乎以及指定外键
           //EF7类没法自动关联定义,所以这里定义一下
           modelBuilder.Entity<User>().ManyToOne(r => r.Role, u
=> u.Users).ForeignKey(f => f.RoleID);
       }
   }
}

 

5.迁移

     
打开vs,工具-》Nuget程序包管理器-》程序包管理器控制台:

      第一步:当前档路线

      图片 3

     
第二步:启用ef commands

      图片 4

     
注:这同步要在project.json中commands配置ef。

     第三步:添加迁移

     图片 5

     这一步ok,会出现:

     图片 6

    
第四步:同意迁移

     图片 7

     第五步:检查数据库

     图片 8

     也可以关押一下涉及图:

     图片 9

6.小结

     
本章算是小试牛刀开个头了,后面在Web项目遭到再次持续EF的GRUD(增删改查)。下同样章介绍项目揭示与布局!

 

网站地图xml地图