长久以来,程序设计师和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序设计师一定要为了连接与访问数据库而去学习 SQL 指令,因此在信息业中有很多人都在研究如何将程序设计模型和数据库集成在一起,对象关系对应 (Object-Relational Mapping) 的技术就是由此而生。Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),而数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。
Entity Framework功能强大,本文只介绍从已有的数据库生成Entity Framework,越过SQL语句操作数据库的基本知识。 在项目中添加Entity Framework的方法请参见http://msdn.microsoft.com/en-us/data/jj206878
创建数据库实例
using (var db = new bbsEntities()) {
...
}
查询
var query = from b in db.word
orderby b.author
select b;
即LINQ表达式 query类似于DataTable,可以作为控件的DataSource,可用foreach迭代。
查询单个记录可用SingleOrDefault()方法:
var query = db.word.SingleOrDefault(p=>p.running_account==3);
注意若查询结果超过一个则会出现异常。
添加
用表的AddObject()方法添加记录。参数为记录的类型。记录的类名即为表的名字。 db.word.AddObject(new word { running_account = 23, topic = "zxc", text = "EntityFramework", author = 1, time = DateTime.Now, response = 0, authorname = "lee" });
删除
DeleteObject方法用法与AddObject相同。可先用LINQ查找符合条件的记录,用foreach删除。
注意:添加和删除后要调用数据库的SaveChanges方法保存修改。
更新
查询出数据库中内容后直接对其属性进行修改,再保存修改即可。
var query = db.word.SingleOrDefault(p=>p.running_account==3);
query.text="EntityFramework";
db.SaveChanges();