🎯 序、修真者的数据库之道
在.NET的浩瀚宇宙中,EFCore犹如一门高深心法,助我以面向对象之道驾驭数据库之力。今日起,记录我的筑基之旅!
🔮一、建立灵根(DbContext)
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");
}
}
✨ 修真要点:
🧙♂️二、凝练实体(Entity)
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;}// 修士导航属性
}
🔍 属性注释:
🌪️三、迁移大法(Migration)
# 安装EFCore神通
dotnet tool install --global dotnet-ef
# 创建初始迁移(相当于绘制藏宝图)
dotnet ef migrations add InitialCreate
# 应用迁移(开辟洞天福地)
dotnet ef database update
💡 修真提示:
🛠️四、CRUD四字真诀
✨ 增(Create)
var newCultivator =newCultivator
{
Name="韩立",
RealmLevel=1
};
context.Cultivators.Add(newCultivator);
context.SaveChanges();// 灵气灌注
🔍 查(Read)
var goldenCore = context.Cultivators
.Where(c=> c.RealmLevel>=3)
.OrderBy(c=> c.Name)
.ToList();// 筛选金丹期以上修士
✏️ 改(Update)
var cultivator = context.Cultivators.Find(1);
cultivator.RealmLevel=4;// 突破境界
context.SaveChanges();
❌ 删(Delete)
var failed = context.Cultivators.Find(2);
context.Remove(failed);// 逐出师门
context.SaveChanges();
🌈五、关系修炼之道
一对多关系(修士-功法)
// 添加功法
var hanli = context.Cultivators.First();
hanli.Techniques.Add(new Technique{Name="青元剑诀"});
// 查询带功法的修士
var masters = context.Cultivators
.Include(c=> c.Techniques)// 显式加载
.ToList();
多对多关系(修士-门派)
// 通过中间实体实现
public class CultivatorSect
{
public int CultivatorId{ get; set;}
public int SectId{ get; set;}
// 其他属性...
}
🎉完、筑基成功!
经过七日苦修,已掌握EFCore基础心法:
✅ 创建DbContext灵根
✅ 定义实体模型
✅ 运用迁移大法
✅ 熟练CRUD操作
✅ 理解关系映射
🚀 进阶预告:
💬 道友交流区(留言留下你的问题)
Q: 为什么我的迁移总是失败?
A: 检查实体定义是否合理,删除旧迁移重新尝试
Q: Include和ThenInclude有什么区别?
A: Include加载直接关联实体,ThenInclude加载嵌套关联实体
📌 修真箴言:
"代码如修行,EFCore似心法,唯有勤加练习,方能证得大道!"
👉 点击关注,获取更多.NET修真秘籍!
👍 点赞收藏,助我突破境界瓶颈!