一直在用DHhelper做MVC,感觉好山寨,也不怎么好用。决定开始学EF。

废话不多说开始记笔记。。。。。

EF就是把数据库表,存储过程,视图实例化,通过继承DbContext的一个类来操作数据实例。

创建EF:

实体连接字符串一般选“是”。

这里只勾选需要用到的表,视图和存储过程。

然后就是下一步,下一步,就完成了EF的创建。

EF一般在MVC项目的Model文件夹下,也就是MVC中的model。

使用EF:

有了EF后,Controller就直接可以通过调用继承DbContext类的方法来操作数据库。

 查询:

Controller部分

ksoa_lsddEntities db = new ksoa_lsddEntities();     //实例化DbContext对象
List<spkfk> ls = db.spkfk.AsQueryable().ToList(); //查询表,返回表集合
return View(ls);

View部分

@model List<EFtest.Models.spkfk>

@{
Layout = "~/Views/template/_tamplate.cshtml";
} <table>
@foreach (EFtest.Models.spkfk i in Model)
{
<tr>
<td>
@i.spmch
</td>
</tr>
}
</table>

新增:

Controller部分

            testEFEntities db = new testEFEntities();   //实例化DbContext对象
EFtable e = new EFtable(); //创建新增实例对象
e.goodscode = "YC01"; //新增对象属性赋值
e.goodsname = "乙醇"; //新增对象属性赋值
db.EFtables.Add(e); //新增对象添加到实例化对象集合
db.SaveChanges(); //把修改后的集合保存到数据库
SaveChanges()这个方法很重要,对数据库增删改操作完后都要SaveChanges()把操作在保存到数据库,SaveChanges()返回数据库受影响行数,该操作执行后数据库多少条数据受影响

增删改不需要在View做操作。

修改:

Controller部分

testEFEntities db = new testEFEntities();   //实例化DbContext对象
EFtable e = db.EFtables.Find();//通过主键找到要修改的数据对象并将其实例化
e.goodsname = "修改后"; //给需要修改列的属性赋值
db.SaveChanges(); //保存操作到数据库

修改需要通过Find方法找到需要修改的数据对象,并实例化该对象。

删除:

Controller部分

testEFEntities db = new testEFEntities();   //实例化DbContext对象
EFtable e = db.EFtables.Find(); //找到需要删除的数据列对象并实例化
db.EFtables.Remove(e); //将指定删除对象移除数据表对象集合
db.SaveChanges(); //操作保存到数据库

删除与修改类似,删除需要调用remove方法执行。

自学EF一些小笔记的更多相关文章

  1. Linux下postgres9.4 版本的单机版安装小笔记

    1.添加RPMyum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-redha ...

  2. 转:【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber

    http://www.bubuko.com/infodetail-382485.html 标签:des   class   style   代码   html   使用   问题   文件   数据 ...

  3. 小笔记:Timer定时间隔时间操作

    小笔记:Timer定时间隔时间操作,后面有时间再补充和完善: public class TimingSvc { /// <summary> /// 定时器,执行定时任务 /// </ ...

  4. 关于 linux中TCP数据包(SKB)序列号的小笔记

    关于  SKB序列号的小笔记 为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq  一直没有找到seq 不清楚在那里初始化了,就 ...

  5. EF中使用SQL语句或存储过程(小笔记)

    1.无参数查询 var model = db.Database.SqlQuery<UserInfo>("select* from UserInfoes ").ToLis ...

  6. 深入剖析Nginx一点小笔记

    前几天在图书馆看书,恰好看到这本<深入剖析nginx>,花了快一周的时间看完了这本书,写点笔记心得便于以后复习. 以前对nginx的认识就只是停留在一个反向代理服务器上.百度了一下ngin ...

  7. Git-rebase 小笔记

    转自: https://blog.yorkxin.org/posts/2011/07/29/git-rebase/ 最近刚好有个机会整理很乱的Git commit tree,终于搞懂了rebase 的 ...

  8. css通用小笔记03——浏览器窗口变小 div错位的问题

    我最近写网页的时候,经常碰到一个普遍的问题,经过我的查阅和尝试,终于解决了这一问题,这里有两种方法提供给大家,如果博友还有更好的方法,欢迎补充. 一.使用min-width属性: 我们先看看下面这段代 ...

  9. css通用小笔记01——导航背景

    很多刚接触前端的可能遇到一些css能解决的小问题,我现在总结了一些,将会逐渐和大家分享,先是导航的背景问题,在网页中常常看到,当鼠标放到一个导航按钮上面是,就会出现一些特效,比如背景,这是最常用的,我 ...

随机推荐

  1. Codeforces Gym 101142C:CodeCoder vs TopForces(搜索)

    http://codeforces.com/gym/101142/attachments 题意:每个人在TC和CF上分别有两个排名,如果有一个人在任意一个网站上大于另一个人的排名,那么这个人可以打败另 ...

  2. HDU 4635:Strongly connected(强连通)

    http://acm.hdu.edu.cn/showproblem.php?pid=4635 题意:给出n个点和m条边,问最多能添加几条边使得图不是一个强连通图.如果一开始强连通就-1.思路:把图分成 ...

  3. java下载安装,环境变量,hello world

    1.Java下载安装 网址:http://java.sun.com/javase/downloads/index.jsp win7 64位选择jdk-8u11-windows-x64.exe. 2.环 ...

  4. HTML,javaScript,DOM详解

    HTML DOM 教程 DOM 教程 DOM 简介 HTML DOM 定义了访问和操作 HTML 文档的标准方法. DOM 将 HTML 文档表达为树结构. HTML DOM 树 HTML DOM 简 ...

  5. DAG模型

    数字三角形: 1.递归计算 int solve(int i,int j) { :max(solve(i+,j),solve(i+,j+))); } 2.记忆化搜索,不用指明计算顺序,并且保证每个状态只 ...

  6. 如何使用不同参数组合生成独立的TestCase函数(Python)

    在使用selenium2 Python做自动化测试的时候遇到个问题,写一个testcase 生成报告后,会有一个case的执行状态记录.这样我们写一个登录功能的自动化用例,只写一个case显然是不行的 ...

  7. 巧用ViewPager 打造不一样的广告轮播切换效果

    一.概述 如果大家关注了我的微信公众号的话,一定知道我在5月6号的时候推送了一篇文章,文章名为Android超高仿QQ附近的人搜索展示(一),通过该文可以利用ViewPager实现单页显示多个Item ...

  8. 2017年1月7日 星期六 --出埃及记 Exodus 21:33

    2017年1月7日 星期六 --出埃及记 Exodus 21:33 "If a man uncovers a pit or digs one and fails to cover it an ...

  9. 2016年12月12日 星期一 --出埃及记 Exodus 21:7

    2016年12月12日 星期一 --出埃及记 Exodus 21:7 "If a man sells his daughter as a servant, she is not to go ...

  10. 窗体移动API

    //窗体移动API [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport ...