• EF code first 数据模型创建数据库


    首先:工具-NuGet包管理器-程序包管理器控制台,输入  Install-package EntityFramework  ,安装EF环境

    创建表:

    新建类,比如名为student ,命名空间:using System.ComponentModel.DataAnnotations; 表中内容为

     public class student
        {
            [Key]
            [Required]
            public int id { get; set; }
            public string name { get; set; }
        }

    新建上下文类:比如名为studentcontext,命名空间:using System.Data.Entity; 表中内容为

     public class studentcontext:DbContext
        {
            public studentcontext() : base("studentcontext") { }
            public DbSet<student> students { get; set; }
    
        }

    然后再App.config配置文件中:

      <connectionStrings>
        <add name="studentcontext" connectionString="Data Source=.;Initial Catalog=MySite;Persist Security Info=True;User ID=sa;Password=123" providerName="System.Data.SqlClient" />
      </connectionStrings>

    最后在program main函数中:

    using(studentcontext st=new studentcontext())
                {
                    student s = new student();
                    st.students.Add(s);
                    st.SaveChanges();
                }

    启动、执行,打开迁移 Enable-Migrations

    此时数据库已创建完成,并自动创建Migrations文件夹,文件夹内有两个类文件;

    ---------------------------------

    添加列:以增加 pwd 列为例

    在student类表中,新增结构;

    执行 Add-Migration studentpwd               //后面为表名+列名

    执行 Update-Database

    ---------------------------------

    删除列:以删除 pwd 列为例

    在student类表中,删去索要删的结构;

    执行 Add-Migration Delstudentpwd                      //Del+表名+列名

    执行 Update-Database

    ----------------------------------

    修改列:将age修改为nick为例

    在student类表中,修改结构;

    执行 Add-Migration Renamenick                      //Modify+修改后的列名

    得到迁移cs文件:并改为

     public override void Up()
            {
                //AddColumn("dbo.students", "nick", c => c.String());
                //DropColumn("dbo.students", "age");
                RenameColumn("dbo.students", "age", "nick");
            }
            
            public override void Down()
            {
                //AddColumn("dbo.students", "age", c => c.Int(nullable: false));
                //DropColumn("dbo.students", "nick");
                RenameColumn("dbo.students", "nick", "age");
            }

    执行 Update-Database

     ---------------------------------

    设置主外键:

    主键表中添加:

    public virtual ICollection<bag> stu{ get; set; }  //bag为外键表名

    外键表中:

     public virtual student stu{ get; set; }
  • 相关阅读:
    C++中的queue类、Qt中的QQueue类
    FeignClient传输实体类(包括GET、POST)
    Spring @Order注解的使用
    springboot整合fastdfs实现上传和下载
    Illegal group reference解决方法
    Java io下载并替换文件内容
    Java根据模板下载TXT文件
    SpringBoot--logger日志配置,使用@Slf4j注解
    SpringBoot--poi导出Excel文件
    JRebel for IntelliJ 热部署破解方法
  • 原文地址:https://www.cnblogs.com/m110/p/8602728.html
Copyright © 2020-2023  润新知