C# EntityFramework笔记

EntityFramework是方便C#和数据库交互的库。

DbContext

我们继承DbContext弄一个类,构造函数输入数据库的连接字符串。

DbSet<>

DbContext里声明几个DbSet<>,可以使用.ToList()转换成列表。DbSet<>.ToString()得到使用的sql语句。

Entity类

要加Table("表名")特性。

主键加Key特性。

不指定表名会触发Code First模式,也就是C#找不到表就自己建一个。

增

cs 复制代码
MyEntity entity=new MyEntity();
using (MyDBContext myDBContext = new(LearnDB.conStr))
{
    myDBContext.entities.Add(entity);
    myDBContext.SaveChanges();
}

删

cs 复制代码
using (MyDBContext myDBContext = new(LearnDB.conStr))
{
    var entity= myDBContext.entities.FirstOrDefault(e => e.UserName == userName);
    myDBContext.entities.Remove(entity);
    myDBContext.SaveChanges();
}

查:DbSet<>.Where()

cs 复制代码
public void SearchByUserName(string userName)
{
    using (MyDBContext myDBContext = new(LearnDB.conStr))
    {
        var data = myDBContext.AccountEntities.FirstOrDefault(e => e.UserName == userName);
    }
}

查全部

cs 复制代码
using (MyDBContext myDBContext = new(LearnDB.conStr))
{
    var data = myDBContext.AccountEntities.ToList();
    Console.WriteLine(data.Count);
    foreach (var entity in data)
    {
        Console.WriteLine(entity.UserName);
    }
}

改

cs 复制代码
public void Update(int Id,string email)
{
    using (MyDBContext myDBContext = new(LearnDB.conStr))
    {
        var data = myDBContext.AccountEntities.FirstOrDefault(e => e.Id ==Id);
        data.Email =email;
        myDBContext.SaveChanges();
    }
}

只能改在这个using区域得到的记录,保存才生效。在其他区域获得的记录想修改生效需要Attach。然后修改状态为Modified。

以Id或用户名为条件,查询后修改其中任意的属性,需要有多少个属性就写多少个方法重载?

相关推荐
Random Glow1 小时前
二级索引与回表:一次回表到底多贵
数据库·mysql·性能优化·innodb·索引
CarIise1 小时前
JDBC 与数据库事务核心
数据库·笔记
见闻小天地1 小时前
新手入门:印刷包装设备的伺服和PLC运动控制方案各管什么?七步选型讲清楚
运维·网络·数据库·人工智能
海鸥-w2 小时前
Redis 配置与排错说明
java·数据库·redis·bootstrap
jaysee-sjc2 小时前
【苍穹外卖】Day12:工作台数据看板与 Excel 报表导出
java·开发语言·数据库·spring boot·spring·微信·excel
阿松爱学习3 小时前
【Unity开发】局部区域截图功能实现
unity·c#
sunburn-3 小时前
数据库聚合查询完整教程:从基础函数到实战统计
java·数据库·mysql·数据库开发
小蒜学长3 小时前
基于 Spring Boot 的英语单词背诵系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
中电金信3 小时前
开发更高效、监控更实时、运维更省心,源启数据开发平台构筑一站式数据开发新底座
网络·数据库·人工智能
泡海椒3 小时前
深度解析JQuick-SQL 谓词下推与投影下推优化机制
数据库·sql