一直在用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. 如何在VS2013中新建WindowsService定时任务

    http://jingyan.baidu.com/article/cd4c2979e9330d756f6e6070.html 很多人都想做定时任务,但是没有不知道如何下手,现在就用WindowsSer ...

  2. GDCPC2016 省赛随笔

    这是第一次参加省赛,第二次参加正式的组队赛. 昨晚很早就睡,早上挺早就睡不着醒了,内心既紧张又激动(虽然赛前和队友说尽力就好,但是还是很怕打铁啊).然后吃过早餐跟随学校大部队来到了中大.发现有好多学校 ...

  3. postgresql 热备与恢复

    一. PostgreSQL热备份的过程一般为: 数据库中执行:pg_start_backup() ; 然后使用操作系统的tar或 cp命令拷贝 PostgreSQL数据文件. 数据库中执行:pg_st ...

  4. linux ar命令

    当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量.这里介绍命令ar,用来对库操作. 1.ar基本用法 ar ...

  5. nodepad + 插件

    Notepad++是一款Windows环 境下免费开源的代码编辑器,支持的语言: C, C++ , Java , C#, XML,SQL,Ada, HTML, PHP, ASP, AutoIt, 汇编 ...

  6. 层叠样式表(CSS)

    层叠样式表(CSS) CSS(Cascading Style Sheet)中文译为层叠样式表.是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言.CSS的引入就是为了使得HTML语言能够 ...

  7. web前端职业规划

    关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了, 坚持去认真走,就好.在这里,我只是简要说一下自己对于这块儿内容的理解.有一个观点想要分享 ...

  8. Testing Round #12 A

    A. Divisibility time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  9. getElementsByClassName

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. [转]Unity3D协程介绍 以及 使用

    作者ChevyRay ,2013年9月28日,snaker7译  原文地址:http://unitypatterns.com/introduction-to-coroutines/ 在Unity中,协 ...