案例实作图解.Net Entity Framework 教程
案例实作图解.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 教程相关推荐
- 案例实作图解Asp.Net MVC教程
案例实作图解Asp.Net MVC教程 文字:天下轻功第一 程序:天下轻功第一 第零章 资源和版本 一 Asp.Net MVC资源链接 ASP.NET MVC的官网 http://www.asp ...
- [(转)hystar整理]Entity Framework 教程
预备知识 2 LINQ技术 2 LINQ技术的基础 - C#3.0 2 自动属性 2 隐式类型 2 对象初始化器与集合初始化器 3 匿名类 3 扩展方法 ...
- 【转】Entity Framework教程
转自:http://www.cnblogs.com/xray2005/category/189491.html Entity Framework系列文章导航 摘要: 本节集合了Entity Frame ...
- [hystar整理]Entity Framework 教程
目录 预备知识 2 LINQ技术 2 LINQ技术的基础 - C#3.0 2 自动属性 2 隐式类型 2 对象初始化器与集合初始化器 3 匿名类 3 扩展方法 ...
- Entity Framework教程(第二版)
EF的发展历程 还是先来说一下EF从诞生到现在这几年的发展历程吧.在EF最初的版本中,作为一个ORM组件其通过EDM文件(里面是一些xml)来配置数据库与实体类之间的映射,实现数据进出数据库的控制.最 ...
- Entity Framework教程
博客园EF系列: http://www.cnblogs.com/lsxqw2004/category/266012.html entityframeworktutorial: http://www.e ...
- 第二篇 Entity Framework Plus 之 Query Future
从性能的角度出发,能够减少 增,删,改,查,跟数据库打交道次数,肯定是对性能会有所提升的(这里单纯是数据库部分). 今天主要怎样减少Entity Framework查询跟数据库打交道的次数,来提高查询 ...
- 手把手引进门之 ASP.NET Core Entity Framework Core(官方教程翻译版 版本3.2.5)
以下是手把手引进门教程,基于 ASP.NET Core, Entity Framework Core ,ABP 框架 创建Web 应用, PS: 自带自动的测试模块哦. 样例下载 (上 github ...
- 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 ...
最新文章
- 计算机考试题选择,(计算机考试题选择.doc
- Objective-c 程序结构
- 如何用java弄相对布局_用java 编码实现相对布局界面
- 建立一个全数据管理的分析平台,该如何落实?
- mac显示网速_Mac系统怎么查看测试网速
- 38 | 测试数据的“银弹”- 统一测试数据平台(下)
- 加好友饥荒服务器没有响应,饥荒进不去别人的服务器 | 手游网游页游攻略大全...
- Unity DOTS在hybird renderer v2 中rendermesh不显示
- CorelDRAWX4的VBA插件开发(二十四)复合选框组件与联合命名面板
- ultimate++使用_使用Ultimate Custom Widget个性化您的Android主屏幕
- 百度网盘解析加速网页版[演示站可用]
- 夕阳西下,天空燃烧着一片橘红色的晚霞
- splatter包生成单细胞RNA测序数据
- 网络 · IPv4协议
- 【CSDN竞赛第5期】编程竞赛总结
- 疯狂动物城的代码,还需要修改,但有一点雏形
- 如何在谷歌浏览器中安装Dark Reader插件
- Python学习必备:10个奇妙的Python库,看完后我惊呆了
- Ubuntu的recovery模式进入及退出
- 计算机毕业的人有很多不从事IT行业
热门文章
- 线程池的几个重要参数?—— 七大参数
- springboot 的两种配置文件语法||配置文件占位符||@Value 读取配置文件及验证处理
- oracle数据库impdp导入dmp文件功能演示,imp导入IMP-00038: Could not convert to environment character sets handle问题解决
- Windows 技术篇-Internet Explorer浏览器启用方法,windows找不到ie浏览器解决办法
- PyQt5 技术篇-plainTextEdit控件获得文本内容方法、设置文本内容方法。
- 搜狗输入法:候选词带符号设置方法。正常打字打出符号,颜文字。
- CTFshow php特性 web143
- [BJDCTF2020]EzPHP 1
- 第7周项目实践2.1 用只有尾节点指针rear的循环单链表实现队列算法库
- SDUT-3362 数据结构实验之图论六:村村通公路