使用 EFCore简单入门(实体类生成数据库表)
1.安装Nuget包
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
2.创建Book,Post两个实体类
public class Book { /// <summary> /// id /// </summary> public int Id { get; set; } /// <summary> /// 书本名称 /// </summary> public string Name { get; set; } /// <summary> /// 价格 /// </summary> public int Price { get; set; } /// <summary> /// 所属类型 /// </summary> public string Type { get; set; } }
public class Post { /// <summary> /// 借书人 /// </summary> public int PostId { get; set; } /// <summary> /// 姓名 /// </summary> public string PostName { get; set; } /// <summary> /// 性别 /// </summary> public string Sex { get; set; } /// <summary> /// 住址 /// </summary> public string Address { get; set;} }
3.创建一个xxxx类我这点取名BingBDContext类
public class BingBDContext : DbContext { public DbSet<Book> Books { get; set; } public DbSet<Post> Posts { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("server=.;database=NewTable;uid=sa;pwd=123456;TrustServerCertificate=True"); } protected override void OnModelCreating(ModelBuilder modelBuilder) { //重新定义表名,如果不重新定义,那么就是 Books和 Posts modelBuilder.Entity<Book>().ToTable("NewBooks").HasComment("你的表注释"); //点击表右键查看属性,选择扩展属性,可查看注释 modelBuilder.Entity<Post>().ToTable("NewPosts");
//排除某张表迁移
//modelBuilder.Ignore<Post>();
}
}
4.打开解决方案文件夹,进入cmd运行两个命令
dotnet ef migrations add 自定义一个名字
dotnet ef database update
-----------------------------------------------------------------------
4-1: 在vs包管理控制台中输入命名
add-migration 自定义一个名字
update-database
5. dotnet 需要安装net core 运行时
运行时下载 https://dotnet.microsoft.com/zh-cn/download/dotnet
dotnet ef 安装: (注意安装的dotnet版本要和运行时版本一样为8.0.4)
dotnet tool install -g --version 8.0.4 dotnet-ef
6. 我这点安装的是 net8 运行时,
7. 选择运行时安装,注意不要安装成sdk了
8.安装
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
时,选择安装的版本要和安装运行时的版本一致,否则: 嘿嘿嘿~你懂的
9: 既然前面我们已经准备就绪了,接下来就是对数据的增删改查了
BingBDContext db = new BingBDContext(); //增 db.Books.Add(new Book() { Name="坏蛋是怎么练成的", Price= 89, Type="科幻类" }); //查 Book book = db.Books.FirstOrDefault(); Console.WriteLine("编号:"+book.Id+" 书名:"+book.Name+" 价格:"+book.Price+" 类型:"+book.Type); //改 book.Name = "穿越大兴安岭"; book.Price = 29; //删 db.Books.Remove(book); db.SaveChanges(); //保存到数据库
db.Dispose()//释放上下文
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?