首页 > 其他分享 >EF Core 基本使用

EF Core 基本使用

时间:2023-10-26 21:33:41浏览次数:38  
标签:基本 Core set Name get EF ctx var public

一、与数据库表映射

1、安装依赖:Install-Package Microsoft.EntityFrameworkCore.SqlServer;

2、创建实体类:

  public record Person
    {
        public long? Id { get;set; }
        public string Name { get; set; }
        public string BloodType { get; set; }
        public bool Genger { get; set; }
        public DateTime? BirthDate { get; set; }
  }

3、实体配置类

class PersonEntityConfig:IEntityTypeConfiguration<Person>// 与Person实体类对应
{
      public void Configure(EntityTypeBuilder<Person> builder)
     {
        builder.ToTable("Persons");
builder.Property(t=>t.Name).HasMaxLength(200).IsRequired();//给Name设置最大长度,并且不为空 } }

4、创建DBContext类

public class TestDBContext:DbContext
{
    public DbSet<Person> Persons;
    protect override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
   {
       string connStr = "Server=.;DataBase=demo;Trusted_Connection=True;MuiltipleActiveResultSet=true";
       optionsBuilder.UserSqlServer(connStr);
    }  
    protect override void OnModelCreating(ModelBuilder modelBuilder)
   {
        base.OnModelCreating(modelBuilder);
        modelBuilder.AppConfigurationsFromAssembly(this.GetType().Assembly);//从当前程序集中加载所有的EntityTypeConfiguration
    }
}

 5、生成数据库

  先安装Microsoft.EntityFrameworkCore.Tools,

   然后在程序包管理器控制台中执行Add-Migration 此次迁移说明   

   然后在程序包管理器控制台中执行Update-Database

 数据库中表创建成功

6、实体类有修改?

  执行Add-Migration xxx,然后执行Update-Database

二、增删改查

1、增

using(var ctx =new TestDBContext())
{
    Person p = new Person();
    p.Name = "111";
    ctx.Persons.Add(p);  
    await ctx.SaveChangesAsync(); 
}

2、删

using(var ctx =new TestDBContext())
{
    var p = ctx.Perons.Single(t=>t.Id==1);
     ctx.Perons.Remove(p); // ctx.Remove(p)
     await ctx.SaveChangesAsync(); 
}

3、改

using(var ctx =new TestDBContext())
{
    var p = ctx.Persons.Single(t=>t.Id==1);
    p.Name="djifjsd";    
    await ctx.SaveChangesAsync(); 
}

4、查

using(var ctx = new TestDBContext())
{
    var perons = ctx.Persons.Where(t=>t.Name=="111");
    var persons1 = ctx.Perons.OrderBy(t=>t.Id); 
}

 

标签:基本,Core,set,Name,get,EF,ctx,var,public
From: https://www.cnblogs.com/lixiang1998/p/17787656.html

相关文章

  • Buu web easysql and Havefun
    1.easysql:(sql注入)解题思路:1、手工sql注入判断注入类型。2、构造pyload输入1’判断注入类型页面报错,说明为字符型,在构造pyload时候,需要主要闭合'。pyload:1'or1=1#(#的意思是把后面的注释掉,在这里是注释掉后面',保证语句正常执行)用or是因为1=1为真,那么无论前面的条......
  • Codeforces Round#905 解题报告
    按理来说最近开始了一天一套div2计划,第一天做了一套Div1,第二天做了hustfc,第三天因为要赶latex期末考试,所以什么也没做。明天写一下hustfc比较牛的几题。A暴力怎么做,是不是加加加,然后判断。B本质上是让长度为\(i\)的后缀全是\(0\)那么找到最短的有\(i\)个\(0\)......
  • Java基本语法_04类型转换
    1.自动类型转换 ......
  • .net core中你的MD5用对了吗?
    本文的项目环境为.net6.0(.net5.0以上都支持)在.net中获取字符串的MD5相信是非常容易的事情吧,但是随便在网上搜一搜发现流传的版本还不少呢,比如:StringBuilder版本(应该算是官方版本了,使用的人最多,我发现在ABP中也是使用的这个)BitConverter版本S......
  • 通讯 --- C# .NET CORE MQTT 心跳服务
    转自:https://www.cnblogs.com/hkzw/p/17689443.htmlMQTT服务可以自行学习,这里只是记录一下写的结果,粘贴即用。首先引入包 MQTTnet,注意这个包这里的代码是4.0一下版本我用的3.1.2版本的4.以上是另外的写法,该内容中4不支持我 直接下降版本到3.1.2可以了。如果你一......
  • 在CI/CD发布流水线中,使用dotnet publish命令编译.NET Core C#代码
    在搭建CI/CD发布流水线(例如Jenkins流水线)发布.NETCore项目时,我们需要在流水线中使用dotnetpublish命令来编译C#代码来生成DLL文件。参考dotnetpublish官方文档。其中这里有说到,dotnetpublish命令会隐式调用dotnetrestore命令来还原nuget包,所以调用dotnetpublish之前不用显......
  • Codeforces Round 904 (Div. 2)
    A.没想到是暴力,做的很晚B.手玩一下即可C.MediumDesign给定一个长为\(n\)的数组\(a\),和若干条线段\([l_i,r_i]\),你可以选择这其中的任何若干条线段,并让\(a_l\sima_r\)均\(+1\).请你计算可以得到的\(\max(a)-\min(a)\).这题本来想的是先把所有的加进去,得到......
  • Java SimpleDateFormat的使用方法
    JavaSimpleDateFormat的使用方法使用Date直接输出日期时,是使用系统默认的格式输出,所以需要使用SimpleDateFormat来格式化日期。那么SimpleDateFormat类怎么使用呢,我们需要先了解此类的格式化符号y:代表年份M:代表月份d:代表月份中的那一天,也就是日H:代表小时m:代表分钟s:代表秒......
  • ASP.NET Core 使用 MQTTnet 实现 MQTT 通讯协议
    转自:https://www.twle.cn/t/19383MQTT是啥呢?MQTT,英文全称 MessageQueuingTelemetryTransport,是一种基于 发布/订阅 模式的轻量级的消息传输协议,由IBM公司出品。物联网兴起后,MQTT因为够轻量,低带宽和低延时而被推上浪潮之巅。其实,MQTT几乎就是专门为网络受限设备、低......
  • CocosCreator3.x 应用在UI(Sprite) 上的 shader(.effect) 的合批,通过自定义顶点参数(一
    前言为啥要合批减少DC什么是自定义顶点参数通过几何体实例化特性(GPUInstancing)可使GPU批量绘制模型相同且材质相同的渲染对象。如果我们想在不打破这一特性的情况下单独修改某个对象的显示效果,就需要通过自定义几何体实例化属性。参考文档UI(Sprite)怎么你了?按照文......