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=&quot;data source=.;initial catalog=CcxDemo;User ID=sa;Password=123456;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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 = ;
//将对象加进来
db.gBook_Message.Attach(gbookObj);
//标记为删除
db.gBook_Message.Remove(gbookObj);
//执行删除
db.SaveChanges();
}

ASP.NET MVC- EF基础的更多相关文章

  1. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架 ...

  2. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) ...

  3. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计     ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)    ...

  4. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据 ...

  5. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2): ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(8)-DbSession线程内唯一

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(8)-DbSession线程内唯一 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建  ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  8. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2) ...

  9. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)  (1)框架搭建    (2):数据 ...

  10. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 前言:这 ...

随机推荐

  1. laravel的解决方案

    对form表单批量去掉前后空格trim: $request->merge(array_map('trim', $request->all())); 或 Input::merge(array ...

  2. DX 绘制位图

    简单地学习了四个API: HRESULT CreateOffscreenPlainSurface( [in] UINT Width, // 宽度 [in] UINT Height, // 高度 [in ...

  3. Android 设置EditText光标位置

    Android中有很多可编辑的弹出框,其中有些是让我们来修改其中的字符,这时光标位置定位在哪里呢? 刚刚解了一个bug是关于这个光标的位置的,似乎Android原生中这种情况是把光标定位到字符串的最前 ...

  4. P78、面试题10:二进制中1的个数

    题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如把9表示成二进制1001,有2位是1.因此如果输入9,该函数输出2. 相关题目: 1)用一条语句判断一个整数是不是2的整数次方.一 ...

  5. 4418SPI2对应管脚位置

    MCU_SPICLK2 MCU_SPITXD2 MCU_SPIFRM2 MCU_SPIRXD2

  6. 【HDOJ】4341 Gold miner

    分组01背包.在一条直线上的点归为一组. /* 4341 */ #include <iostream> #include <sstream> #include <stri ...

  7. notepad++ 编辑器链接地址可点击

    很久没用notepad++编辑器,最近因为 sublime 的编码问题,因此用了下 notepad++ .结果发现里面的链接都可以点击,一点都不要编辑,如下图: 那如何把这个功能去掉呢? 我们选择 菜 ...

  8. sdut 1570 c旅行

    用搜索(bfs,dfs)做了半天,都超时,原来是dp; 参考博客:http://www.cnblogs.com/liuzezhuang/archive/2012/07/29/2613820.html ...

  9. Unity3d插件推荐

    2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演游戏开发工具包 uScript-Visual-Scr ...

  10. c语言中 int *p = NULL 和 *p = NULL 有什么区别

    1. int *p = NULL; 代表定义一个指向整型变量的指针p,然后p的值设为NULL,也就是设为0:用另一种方式说,就是对一个刚定义的指向整型变量的指针,赋初始值,让其指向0地址. 2. *p ...