好久没有学习新东西了,最近研究了下EntityFramework,将基础代码贴出来,
Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),而数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。而在抽象化的结构之下,则是高度集成与对应结构的概念层、对应层和储存层,以 及支持 Entity Framework 的数据提供者 (provider),让数据访问的工作得以顺利与完整的进行。
(1) 概念层:负责向上的对象与属性显露与访问。
(2) 对应层:将上方的概念层和底下的储存层的数据结构对应在一起。
(3) 储存层:依不同数据库与数据结构,而显露出实体的数据结构体,和 Provider 一起,负责实际对数据库的访问和 SQL 的产生。
预备知识:Linq、C#匿名类和拉姆达表达式、
废话不多说,直接上代码
一添加:首先创建试题对象,将要添加的数据复制到对象属性上,然后添加到数据库
#region 添加 static AdvEFEntities db = new AdvEFEntities(); static void Add() { Guid id = new Guid("00000000-0000-0000-0000-000000000000"); //创建实体对象 AdvertisingArea advEF = new AdvertisingArea() { QuName = "1111", ShengId = 2, ShiId = 2, ShengName = "22222", ShiName = "23333", QuId = 2232, }; //将对象添加到数据库中 //将对象上下文存到AdvertisingArea集合中 // db.Advertising.Add(advEF); DbEntityEntry<AdvertisingArea> entry = db.Entry<AdvertisingArea>(advEF); //设置数据状态 entry.State = System.Data.EntityState.Added; db.SaveChanges(); Console.WriteLine("数据添加完成"); } #endregion
二查询(1)单表查询:
查询出QuName字段包含”我是新增“的数据
#region 查询 static void Query() { //变相的即时查询 List<AdvertisingArea> area = db.AdvertisingArea.Where(u => u.QuName.Contains("我是新增")).ToList(); area.ForEach(u => Console.WriteLine(u.ToString())); } #endregion