EF是在ADO.NET的基础上做进一步封装,以后如果做新的项目我可能会考虑不用ADO.NET,而用EF。
其实很久以前我就接触过EF,可是太久没用,有些忘记了,前几天重温,也做了一点笔记。记录如下:
1.怎么创建EF不说了,看一下创建EF后,打开EF的XML文件是怎样的。
首先右键,选择打开方式为XML文本
折叠后这里的 SSDL Content定义的是SqlServer里的数据库字段
CSDL Content定义的是类的属性字段
CS MAPPING 定义的是数据库字段与类的属性字段间的映射
2.看一下tt模板
以前EF没有tt模板,现在加了,如果看得懂源码,是可以修改他的代码生成规则的,不过一般情况不用修改到它。
这里的ModelGuestBook.Context.tt后缀的是生成对象接口的代码
这里的ModelGuestBook.tt后缀的是生成Model类的代码。
3.看一下EF生成的数据库连接字符串
<add name="CcxDemoEntities" connectionString="metadata=res://*/ModelGuestBook.csdl|res://*/ModelGuestBook.ssdl|res://*/ModelGuestBook.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=CcxDemo;User ID=sa;Password=123456;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
加入了映身后变得长了许多。还是要以清楚看得数据库是改里,密码和用户名是改里,IP是改哪里的。
4.看一下增删查改的用EF的实现,变得多简洁
CcxDemoEntities db = new CcxDemoEntities(); protected void Page_Load(object sender, EventArgs e) { } //新增 protected void Button1_Click(object sender, EventArgs e) { gBook_Message gbookObj = new gBook_Message(); gbookObj.username = "ccx"; gbookObj.body = "hello world"; gbookObj.ip = "127.0.0.1"; gbookObj.createdate = DateTime.Parse("2014-12-12"); db.gBook_Message.Add(gbookObj); db.SaveChanges(); Response.Write("ok!!"); } //修改 protected void Button2_Click(object sender, EventArgs e) { //将对象查找出来 var gbookObj = db.gBook_Message.Where(g => g.username == "ccx").FirstOrDefault(); //修改的内容 gbookObj.username = "chunxiao"; //执行修改 db.SaveChanges(); } //删除 protected void Button3_Click(object sender, EventArgs e) { gBook_Message gbookObj = new gBook_Message(); gbookObj.id = 1; //将对象加进来 db.gBook_Message.Attach(gbookObj); //标记为删除 db.gBook_Message.Remove(gbookObj); //执行删除 db.SaveChanges(); }