zoukankan      html  css  js  c++  java
  • 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;来做相应的约束)

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

    外键

  • 相关阅读:
    如何制作Python百分比进度条
    如何按列表的元素中的第二个元素排序
    map的用法Python
    上一个问题增加用户名密码登陆
    最近alex买了个Tesla Model S,通过转账的形式,并且支付了5%的手续费,tesla价格为95万。账户文件为json,请用程序实现该提现行为。
    最近alex买了个Tesla Model S,通过转账的形式,并且支付了5%的手续费,tesla价格为95万。账户文件为json,请用程序实现该转账行为。
    写一个6位随机验证码程序,要求验证码中至少包含一个数字,一个小写字母,一个大写字母
    传统html和html5网页布局
    图片路径问题
    面向对象编程的一个形象比喻
  • 原文地址:https://www.cnblogs.com/LanHai12/p/15258104.html
Copyright © 2011-2022 走看看