• EFcore


    一、什么是EFcore

    需要引用的包

     

     

    二、Core First

    步骤

    models文件夹中添加实体类和context数据库上下文实现DbContext接口,并且创建构造函数

     public class ShopContext : DbContext
        {
            private readonly IConfiguration _configuration;
     
            public ShopContext(DbContextOptions<ShopContext> options,IConfiguration configuration) : base(options)
            {
                _configuration = configuration;
            }
     
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                base.OnConfiguring(optionsBuilder);
                //以下两种方式都是正确的
                //optionsBuilder.UseSqlServer(_configuration.GetConnectionString("ShopContext"));
                optionsBuilder.UseSqlServer("server=.;database=ShopDB;uid=sa;password=123456");
            }
     
     
            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                //添加种子数据
     
                //modelBuilder.Entity<Student>().HasData(
                   // new Student {ID=1, Name="小向" }
                  //  );
                    //添加种子数据
                    modelBuilder.Seed();//这个seed方法为ModelBuilder扩展方法,这样做的话可以使我们更好的管理数据。
     
            }
            public virtual DbSet<Product> Products { get; set; }
            public virtual DbSet<Cate> Cates { get; set; }
        }

    新建一个ModelBuilderExtensions类放扩展类方法

    以上两步完成后在工具=====nuget包管理器的控制台管理中

     

    输入命令创建迁移文件:(当更变了字段和修改的一些初始化信息,那么就要重新执行下面两个命令)

    (1)Add-Migration 迁移文件名称(自己起一个名称)例如:Add-Migration initmigration

    (2)Update-Database :更新数据库

    注意以后实体类更改了字段,也可以通过迁移命令更改数据库。

     

    三、DB First

    步骤

     

    1.最后在appsettings.json中添加连接字符串,写法如下:

    //这个不能变

    "ConnectionStrings": {

    //名称自己起的

        "ShopContext": "Data Source=.;Initial Catalog=数据库名称;User ID=sa;Password=123456"

      }

    2. 直接在工具=====nuget包管理器的控制台管理中输入以下命令

    使用sa登录方式:

    Scaffold-DbContext "Data Source=.;Initial Catalog=数据库名称;User ID=sa;Password=123456"

    Microsoft.EntityFrameworkCore.SqlServer -OutPutDir Models -Context ShopContext

     

    使用windows登录方式:

    Scaffold-DbContext "Data Source=.;Initial Catalog=数据库名称;Integrated Security=True"

    Microsoft.EntityFrameworkCore.SqlServer -OutPutDir Models -Context ShopContext

     

     

    四、数据库连接字符串

    五、其他

    1.当需要删除一个表字段时,但该字段已经运用到数据库中,那删除时,需要执行updata-database(删除的迁移数据的前一个迁移数据名称【名称为_后面的名称】)进行数据的回滚,可以使用自动生成的_EFMigrationsHistory(用于跟踪应用于数据库的迁移记录信息)表对应相应的迁移数据进行回滚和删除操作。

    2.如果创建的是一个空的项目,创建控制器和视图时需要自己创建一个Controllers文件夹用于放控制器,创建view放对应的视图文件,创建完毕之后,需要去startupconfigure方法中设置路由。如图:

    3.core first 主外键写法(引用using System.ComponentModel.DataAnnotations;来做相应的约束)

    主键(外键添加之后,须在主键表中添加一个导航属性)

    外键

  • 相关阅读:
    经典的SQL语句(摘抄)
    在C#里获取U盘的盘符
    sql2005分区表示例
    解决VS2008打了SP1补丁后智能提示变英文的问题!!
    IE的打印window.print
    [摘录]SQLServer2008/2005 生成数据字典SQL语句
    表单元素与提示文字无法对齐的问题(input,checkbox文字对齐)
    C# 使用正则表达式去掉字符串中的数字
    MDI中通过GetActiveView获得VIEW
    代码管理技巧——两步创建本地SVN服务器图文教程【转】
  • 原文地址:https://www.cnblogs.com/LanHai12/p/15258104.html
Copyright © 2020-2023  润新知