• EFCore2.1中DbFirst和CodeFirst简单使用


    EFCore中没有DbFirst了吧,应该都是Code First

    先说说第一种,Code First From Database(DbFirst)数据库先行,这种方式就要命令行了...(特不喜欢命令行。。):

    1.建好项目后通过 NuGet 安装所需依赖性:

    1)Microsoft.EntityFrameworkCore 
    (2)Microsoft.EntityFrameworkCore.Design 
    (3)Microsoft.EntityFrameworkCore.SqlServer 
    (4)Microsoft.EntityFrameworkCore.SqlServer.Design 
    (5)Microsoft.EntityFrameworkCore.Tools 

    可以右键项目通过管理NuGet程序包的方式安装,也可以通过命令安装(找到VS工具栏 ---> NuGet 包管理器 ---> 程序包管理控制台):

    注意选择默认项目

    Install-package Microsoft.EntityFrameworkCore 
    Install-package Microsoft.EntityFrameworkCore.Tools 
    Install-package Microsoft.EntityFrameworkCore.Design 
    Install-package Microsoft.EntityFrameworkCore.SqlServer 
    Install-package Microsoft.EntityFrameworkCore.SqlServer.Design 

    然后复制,粘贴,看到已用时间:xxxxxxx即可,

     

    然后继续在程序包管理控制台再输入:

    Scaffold-DbContext -Connection "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir "Models"

    -OutputDir "Models" 可不写,EFCore中只能通过命令生成了,不能像以前EF6一样可以鼠标操作生成了,如果加上了则会在项目中添加models文件夹,生成的context和实体类都放到models文件夹中,如不加,实体则直接生成到项目中

    最后在控制台测试一下

    再试试第二种熟悉的Code First(代码先行,跟以前EF几乎是一模一样),还是比较熟悉这个

    前面步骤都是一样的,建好项目,安装依赖包,不过code first好像需要安装两个依赖包就可以了  

    Microsoft.EntityFrameworkCore.SqlServer 
    Microsoft.EntityFrameworkCore 

    编写Studnet和Classinfo实体类

     

    然后在编写context上下文类,需要继承DbContext
        public class CodeFirstContext : DbContext
        {
            public CodeFirstContext()
            {
    
            }
            public CodeFirstContext(DbContextOptions options) : base(options)
            {
    
            }
            public DbSet<Student> Student { get; set; }
            public DbSet<ClassInfo> ClassInfo { get; set; }
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                if (!optionsBuilder.IsConfigured)
                {
                    optionsBuilder.UseSqlServer("Server=.;Database=EFCoreCodeFirst;uid=sa;pwd=123");
                }
            }
            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
    
            }
        }

    基本上跟Ef6差不多的,写好之后测试一下就OK了:
    using (CodeFirstContext db = new CodeFirstContext())
                {
                    db.Database.EnsureCreated();    //数据库不存在则创建,存在则不管
                    db.Add(new ClassInfo { ClassName = "软件二班" });
                    var result = db.SaveChangesAsync().Result;
                    Console.WriteLine(result > 0 ? "成功了" : "失败了");
    
                }
    
    


  • 相关阅读:
    learning java ATW ScrollPane
    SQLSERVER2008R2正确使用索引
    SQL Server 数据操作
    jar war ear
    浅谈SQL Server中的三种物理连接操作
    SqlServer在视图上创建索引的条件
    Sqlserver 查看视图或者存储过程定义
    过滤器配置
    SpringMVC架构
    N+1问题其实应该叫做1+N 问题
  • 原文地址:https://www.cnblogs.com/heheblog/p/net_study_20180902.html
Copyright © 2020-2023  润新知