C# EntityFramework笔记
EntityFramework是方便C#和数据库交互的库。
DbContext
我们继承DbContext弄一个类,构造函数输入数据库的连接字符串。
DbSet<>
DbContext里声明几个DbSet<>,可以使用.ToList()转换成列表。DbSet<>.ToString()得到使用的sql语句。
Entity类
要加[Table("表名")]特性。
主键加[Key]特性。
不指定表名会触发Code First模式,也就是C#找不到表就自己建一个。
查:DbSet<>.Where()
public void SearchByUserName(string userName) { using (MyDBContext myDBContext = new(LearnDB.conStr)) { var data = myDBContext.AccountEntities.FirstOrDefault(e => e.UserName == userName); } }查全部
using (MyDBContext myDBContext = new(LearnDB.conStr)) { var data = myDBContext.AccountEntities.ToList(); Console.WriteLine(data.Count); foreach (var entity in data) { Console.WriteLine(entity.UserName); } }改
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。
