案例实作图解.Net Entity Framework 教程

可以跟随我操作成功的截图一步步进行实作。

第零章  Entity Framework资源链接和版本

一 资源链接

Microsoft的EF链接:

https://msdn.microsoft.com/en-us/data/aa937723.aspx

二 版本

截至今日-2015年2月,EF的最新版本为6.1。

第一章 使用VS2012+Entity Framework 6.1 开发Winform版本的超市管理系统

一 关于用Nuget程序包管理器安装EF 6.1

网上有甚多教程讲述使用Nuget程序包管理器安装EF 6.1。经鄙人证明,用Nuget程序包管理器安装EF 6.1,是针对单个解决方案的。首先新建一个Form项目SuperMarket,选择菜单 项目-管理Nuget程序包 ,如下图;

没有已经安装的包;以前曾经建立一个空项目EF1,用NuGet安装过EF6.1,如下图;

在SuperMarket中选择最近的程序包,如下图;

点击安装进行安装;

安装之前和之后,解决方案SuperMarket的目录结构分别如下:

由图可见,安装之后,在解决方案下添加packages文件夹,其中包含EF6.1的lib和tool;同时在项目中自动添加引用,如下图;

二 建立主窗体和添加商品窗体,用EF6.1 浏览和添加商品

1 数据库

项目所有Sql Server数据库下载:

http://pan.baidu.com/s/1bn50Oij

下载后导入Sql Server,即可继续进行后续;

2 建立主窗体,添加商品窗体,添加实体数据模型

主窗体顶部为菜单,左侧添加一个TreeView,设计时在TreeView任务中按超市管理内容编辑节点;添加商品窗体和普通添加记录型窗体。

右击项目,添加新项,添加ADO.NET实体数据模型,

完成后项目结构如下;

在项目中多出了superMarketModel.edmx。

3 实现商品浏览

在主窗体中添加窗体级变量:

SuperMarketEntities smef;

在窗体启动事件中生成:

smef = new SuperMarketEntities();

在TreeView的节点选中事件中添加代码如下:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            switch (e.Node.Text)
            {
                case "商品浏览":
                    var shpquery = smef.Merchandise;    //Merchandise为商品表
                    var list = shpquery.ToList();
                    dataGridView1.DataSource = list;
                    break;
                case "新增商品":
                    af = new addShpForm();
                    af.ShowDialog();
                    break;
                default:
                    break;
            }
        }

在不用EF时返回整个表通常是一个DataSet;使用EF时则返回的一个List,把该List赋值给grid控件的DataSource属性即可;运行,结果如下图:

4 实现添加商品

在addShpForm添加窗体级变量:

SuperMarketEntities smef;

addShpForm启动事件:

smef = new SuperMarketEntities();
            var query = smef.Sort;
            foreach (Sort c in query)
            {
                comboBox1.Items.Add(c.SortName);
            }

在窗体启动时获取商品类别表类别名称字段的所有内容添加到comboBox1,以供录入数据时选择;

添加商品按钮事件代码:

//添加商品
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                int sequencenum=smef.Database.ExecuteSqlCommand("select max(sequencenumber) from merchandise");
                sequencenum=sequencenum+1;

Merchandise m = new Merchandise();
                m.MerchandiseNumber = textBox1.Text;
                m.TreatyCode = textBox2.Text;

string sortname="";
                switch(comboBox1.Text)
                {
                    case "电器类":
                        sortname="DQ1004";
                        break;
                    case "礼品类":
                        sortname="LP1006";
                        break;
                    case "日用品":
                        sortname="RY1005";
                        break;
                    case "蔬果类":
                        sortname="SG1003";
                        break;
                    case "食品类":
                        sortname="SP1002";
                        break;
                    case "生鲜类":
                        sortname="SX1001";
                        break;
                    default:
                        break;
                }
                m.SortNumber=sortname;

m.RetailPrice=Convert.ToDecimal(textBox3.Text);
                m.MerchandiseName=textBox4.Text;
                m.MerchandiseSpec=textBox5.Text;
                m.Units=textBox6.Text;
                m.PurchasePrice=Convert.ToDecimal(textBox7.Text);
                m.CheckTerm=Convert.ToDecimal(textBox8.Text);
                m.Remark=textBox9.Text;
                smef.Merchandise.Add(m);
                smef.SaveChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

}

商品表第一个字段为整型的sequencenumber,每添加一个记录,获取该字段最大值,然后加1,赋给新记录;此处使用在EF中直接执行SQL来获取最大值;

smef.Database.ExecuteSqlCommand("select max(sequencenumber) from merchandise");

后面的代码把文本框的值赋给Merchandise对象m;添加m,保存修改即可,如上代码所示;运行,结果如下图;

添加成功:

这样我们就通过EF实现了在商品表中添加生鲜类商品“金条”的操作。

案例实作图解.Net Entity Framework 教程相关推荐

  1. 案例实作图解Asp.Net MVC教程

    案例实作图解Asp.Net MVC教程 文字:天下轻功第一    程序:天下轻功第一 第零章 资源和版本 一 Asp.Net MVC资源链接 ASP.NET MVC的官网 http://www.asp ...

  2. [(转)hystar整理]Entity Framework 教程

    预备知识    2 LINQ技术    2 LINQ技术的基础 - C#3.0    2 自动属性    2 隐式类型    2 对象初始化器与集合初始化器    3 匿名类    3 扩展方法    ...

  3. 【转】Entity Framework教程

    转自:http://www.cnblogs.com/xray2005/category/189491.html Entity Framework系列文章导航 摘要: 本节集合了Entity Frame ...

  4. [hystar整理]Entity Framework 教程

    目录 预备知识    2 LINQ技术    2 LINQ技术的基础 - C#3.0    2 自动属性    2 隐式类型    2 对象初始化器与集合初始化器    3 匿名类    3 扩展方法 ...

  5. Entity Framework教程(第二版)

    EF的发展历程 还是先来说一下EF从诞生到现在这几年的发展历程吧.在EF最初的版本中,作为一个ORM组件其通过EDM文件(里面是一些xml)来配置数据库与实体类之间的映射,实现数据进出数据库的控制.最 ...

  6. Entity Framework教程

    博客园EF系列: http://www.cnblogs.com/lsxqw2004/category/266012.html entityframeworktutorial: http://www.e ...

  7. 第二篇 Entity Framework Plus 之 Query Future

    从性能的角度出发,能够减少 增,删,改,查,跟数据库打交道次数,肯定是对性能会有所提升的(这里单纯是数据库部分). 今天主要怎样减少Entity Framework查询跟数据库打交道的次数,来提高查询 ...

  8. 手把手引进门之 ASP.NET Core Entity Framework Core(官方教程翻译版 版本3.2.5)

    以下是手把手引进门教程,基于 ASP.NET Core, Entity Framework Core ,ABP 框架 创建Web 应用, PS: 自带自动的测试模块哦. 样例下载 (上 github  ...

  9. ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节:ASP.NET MVC ...

最新文章

  1. 计算机考试题选择,(计算机考试题选择.doc
  2. Objective-c 程序结构
  3. 如何用java弄相对布局_用java 编码实现相对布局界面
  4. 建立一个全数据管理的分析平台,该如何落实?
  5. mac显示网速_Mac系统怎么查看测试网速
  6. 38 | 测试数据的“银弹”- 统一测试数据平台(下)
  7. 加好友饥荒服务器没有响应,饥荒进不去别人的服务器 | 手游网游页游攻略大全...
  8. Unity DOTS在hybird renderer v2 中rendermesh不显示
  9. CorelDRAWX4的VBA插件开发(二十四)复合选框组件与联合命名面板
  10. ultimate++使用_使用Ultimate Custom Widget个性化您的Android主屏幕
  11. 百度网盘解析加速网页版[演示站可用]
  12. 夕阳西下,天空燃烧着一片橘红色的晚霞
  13. splatter包生成单细胞RNA测序数据
  14. 网络 · IPv4协议
  15. 【CSDN竞赛第5期】编程竞赛总结
  16. 疯狂动物城的代码,还需要修改,但有一点雏形
  17. 如何在谷歌浏览器中安装Dark Reader插件
  18. Python学习必备:10个奇妙的Python库,看完后我惊呆了
  19. Ubuntu的recovery模式进入及退出
  20. 计算机毕业的人有很多不从事IT行业

热门文章

  1. 线程池的几个重要参数?—— 七大参数
  2. springboot 的两种配置文件语法||配置文件占位符||@Value 读取配置文件及验证处理
  3. oracle数据库impdp导入dmp文件功能演示,imp导入IMP-00038: Could not convert to environment character sets handle问题解决
  4. Windows 技术篇-Internet Explorer浏览器启用方法,windows找不到ie浏览器解决办法
  5. PyQt5 技术篇-plainTextEdit控件获得文本内容方法、设置文本内容方法。
  6. 搜狗输入法:候选词带符号设置方法。正常打字打出符号,颜文字。
  7. CTFshow php特性 web143
  8. [BJDCTF2020]EzPHP 1
  9. 第7周项目实践2.1 用只有尾节点指针rear的循环单链表实现队列算法库
  10. SDUT-3362 数据结构实验之图论六:村村通公路