一直在用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. String 类的常用字符串方法

    public class Page106 { /** * 字符串练习第五章 * @param args */ public static void main(String[] args) { Stri ...

  2. JAVA基础知识之JVM-——动态代理(AOP)

    代理模式简介 在很多场景下,我们想使用一个类(通常是接口)A时,并不是直接使用这个类,而是通过另外一个类B去调用A的方法,这里的类B就是一个代理类. 有很多场景都会用到这种方法,例如假如创建类A需要很 ...

  3. python 中time.sleep没有作用

    很简单的一个程序: # -*- coding: utf-8 -*- import MySQLdb,os,json,time #from wsgiref.simple_server import mak ...

  4. 用Python脚本做一些网页游戏中力所能及的自动化任务

    下面是一段自动登录360传奇霸业游戏的脚本: from pymouse import PyMouse import time import webbrowser from pykeyboard imp ...

  5. spoj 7001. Visible Lattice Points GCD问题 莫比乌斯反演

    SPOJ Problem Set (classical) 7001. Visible Lattice Points Problem code: VLATTICE Consider a N*N*N la ...

  6. [美]莫提默 J. 艾德勒《如何阅读一本书》

      我最近在阅读一本书,这本书的书名叫<如何阅读一本书>(商务出版社,2015),顾名思义.   作者认为,阅读是一件跟写书一样复杂的活动,而许多人并不会阅读. 看过后,你可能会有“我真没 ...

  7. AB串(上帝都不会,我就没救了)

    [题目分析] 设答案的长度为m,

  8. linux下svn常用指令

    windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的 ...

  9. SqlSever基础 datediff 计算人的生日是不准确的,示例

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  10. getElementsByClassName

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