随笔 - 106  文章 - 0  评论 - 1  阅读 - 40962

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; }

 

posted on   段了的弦  阅读(179)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示