首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >手把手教你用.NET修仙:三天炼化EFCore

手把手教你用.NET修仙:三天炼化EFCore

作者头像
云中小生
发布2025-08-24 08:52:54
发布2025-08-24 08:52:54
2440
举报

🎯 序、修真者的数据库之道

在.NET的浩瀚宇宙中,EFCore犹如一门高深心法,助我以面向对象之道驾驭数据库之力。今日起,记录我的筑基之旅!


🔮一、建立灵根(DbContext)

代码语言:javascript
复制


public class CultivationDbContext:DbContext
{
    // 修士名录
    public DbSet<Cultivator> Cultivators{ get; set;}

    // 功法秘籍
    public DbSet<Technique> Techniques{ get; set;}

    protected override void OnConfiguring(
        DbContextOptionsBuilder options)
    {
        // 连接本地数据库
        options.UseSqlite("Data Source=cultivation.db");
    }
}

修真要点:

  • DbContext是沟通天地灵气的桥梁
  • DbSet代表修真界的各种实体集合
  • 配置数据库连接如同选择修炼福地

🧙‍♂️二、凝练实体(Entity)

代码语言:javascript
复制


public class Cultivator
{
    public int Id{ get; set;}// 修士ID(自动生成)
    public string Name{ get; set;}// 道号
    public int RealmLevel{ get; set;}// 境界
    publicList<Technique>Techniques{ get; set;}// 掌握功法
}

public class Technique
{
    public int Id{ get; set;}// 功法ID
    public string Name{ get; set;}// 功法名称
    public int CultivatorId{ get; set;}// 所属修士ID
    public Cultivator Cultivator{ get; set;}// 修士导航属性
}

🔍 属性注释:

  • Id:自动成为主键(PK)
  • 导航属性:实体间的关系纽带
  • 外键:CultivatorId自动关联修士表

🌪️三、迁移大法(Migration)

代码语言:javascript
复制


# 安装EFCore神通
dotnet tool install --global dotnet-ef

# 创建初始迁移(相当于绘制藏宝图)
dotnet ef migrations add InitialCreate

# 应用迁移(开辟洞天福地)
dotnet ef database update

💡 修真提示:

  • 每次修改实体后都需要创建新迁移
  • 迁移文件记录了数据库的演变历史
  • 团队开发时需共享迁移文件

🛠️四、CRUD四字真诀

✨ 增(Create)

代码语言:javascript
复制


var newCultivator =newCultivator
{
    Name="韩立",
    RealmLevel=1
};
context.Cultivators.Add(newCultivator);
context.SaveChanges();// 灵气灌注

🔍 查(Read)

代码语言:javascript
复制

var goldenCore = context.Cultivators
.Where(c=> c.RealmLevel>=3)
.OrderBy(c=> c.Name)
.ToList();// 筛选金丹期以上修士

✏️ 改(Update)

代码语言:javascript
复制


var cultivator = context.Cultivators.Find(1);
cultivator.RealmLevel=4;// 突破境界
context.SaveChanges();

❌ 删(Delete)

代码语言:javascript
复制


var failed = context.Cultivators.Find(2);
context.Remove(failed);// 逐出师门
context.SaveChanges();


🌈五、关系修炼之道

一对多关系(修士-功法)

代码语言:javascript
复制

// 添加功法
var hanli = context.Cultivators.First();
hanli.Techniques.Add(new Technique{Name="青元剑诀"});

// 查询带功法的修士
var masters = context.Cultivators
.Include(c=> c.Techniques)// 显式加载
.ToList();

多对多关系(修士-门派)

代码语言:javascript
复制

// 通过中间实体实现
public class CultivatorSect
{
    public int CultivatorId{ get; set;}
    public int SectId{ get; set;}
    // 其他属性...
}


🎉完、筑基成功!

经过七日苦修,已掌握EFCore基础心法:

✅ 创建DbContext灵根

✅ 定义实体模型

✅ 运用迁移大法

✅ 熟练CRUD操作

✅ 理解关系映射

🚀 进阶预告

  • LINQ高阶查询(相当于神识扫描)
  • 性能优化技巧(灵气运转法门)
  • 事务管理(护山大阵布置)

💬 道友交流区(留言留下你的问题)

Q: 为什么我的迁移总是失败?

A: 检查实体定义是否合理,删除旧迁移重新尝试

Q: Include和ThenInclude有什么区别?

A: Include加载直接关联实体,ThenInclude加载嵌套关联实体


📌 修真箴言:

"代码如修行,EFCore似心法,唯有勤加练习,方能证得大道!"

👉 点击关注,获取更多.NET修真秘籍!

👍 点赞收藏,助我突破境界瓶颈!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 .NET修仙日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档