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
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理