ef core code first EFCore代码优先

1.引入NuGet包

Microsoft.EntityFrameworkCore//主体
Microsoft.EntityFrameworkCore.SqlServer//SqlServer
Microsoft.EntityFrameworkCore.Tools//工具

2.创建实体类

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace CodeFirst.Entity
{
    [Table("Sys_User")]//数据库表名
    public class UserEntity
    {
        [Key]//主键
        [Column(TypeName = "int")]//数据库数据类型
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]//添加时自动增长=identity(1,1)
        //[DatabaseGenerated(DatabaseGeneratedOption.None)]//不自动增长
        public int Id { get; set; }

        [Column(TypeName = "varchar(50)")]
        [Required]//非空
        public string Name { get; set; }

        [Column(TypeName = "varchar(50)")]
        [Required]
        public string Password { get; set; }
    }
}

3.创建Context类

using Microsoft.EntityFrameworkCore;

namespace CodeFirst.Entity
{
    public class CodeFirstContext:DbContext
    {
        public CodeFirstContext(DbContextOptions<CodeFirstContext> options)
            : base(options)
        {
        }

        public DbSet<UserEntity> User { get; set; } = null!;
        
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<UserEntity>(entity =>
            {
                entity.Property(t => t.Password).HasDefaultValue("0000");//数据库默认值
            });
        }
    }
}

4.替换appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "DefaultConnection": "server=.;database=TestDB;uid=sa;pwd=123456"
  }
}

5.在Program注册数据库上下文

using Microsoft.EntityFrameworkCore;
using CodeFirst.Entity;


var builder = WebApplication.CreateBuilder(args);

// 将服务添加到容器中。

builder.Services.AddControllers();
//注册数据库上下文
builder.Services.AddDbContext<CodeFirstContext>(
        options => options.UseSqlServer("name=ConnectionStrings:DefaultConnection"));

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new() { Title = "CodeFirst", Version = "v1" });
});

var app = builder.Build();

// 配置HTTP请求管道。
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "CodeFirst v1"));
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();

6.然后在程序包管理器控制平台上输入:

add-migration init
update-database -verbose
posted @   Jongleur  阅读(342)  评论(0编辑  收藏  举报
(评论功能已被禁用)
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示