使用ADO.NET实体数据模型
前景:要操作的数据表必须添加主键(方式:进入数据库-->数据表名-->设计-->列名右键-->设置主键)
可在服务器资源管理器中查看是否设置了主键(主键会有一把钥匙的图样)
1)、项目名右键-->新建项-->ADO.NET数据模型
选择第一个“来自数据库的EF设计器”就行
如果是第一次连接,点击新建连接完成操作即可,下面选择 “是,在连接字符串中包含敏感数据”
选择需要添加的数据库对象,点击完成。
2)、操作数据表的增删改查
2.1)、声明一个 EF的上下文.(这个上下文指向数据库)
这个对象可以声明成全局的上下文
StudentEntities dbContext = new StudentEntities();
2.2)、增
1 //声明一个实体,并赋值
Students stu = new Students();
stu.StudentName = "李四";
stu.StudentSex = "男";
stu.StudentAge = ;
stu.StudentProvince = "上海";
stu.StudentPhone = ""; //写法一:
//dbContext.Students.Add(stu);
//写法二:
dbContext.Entry<Students>(stu).State = System.Data.Entity.EntityState.Added; //告诉上下文把实体的变化保存到数据库里面去,返回受影响行数
int i = dbContext.SaveChanges();
//三元表达式
string str = i == ? "添加成功" : "添加失败";
Console.WriteLine(str);
2.3)、删
Students stu = new Students();
stu.StudentNO = ; dbContext.Entry<Students>(stu).State = System.Data.Entity.EntityState.Deleted;
int i = dbContext.SaveChanges();
string str = i == ? "删除成功" : "删除失败";
Console.WriteLine(str);
2.4)、修改整条数据
Students stu = new Students();
stu.StudentNO = ;
stu.StudentName = "赵六";
stu.StudentSex = "男";
stu.StudentAge = ;
stu.StudentProvince = "广州";
stu.StudentPhone = ""; dbContext.Entry<Students>(stu).State = System.Data.Entity.EntityState.Modified;
int i = dbContext.SaveChanges();
string str = i == ? "修改成功" : "修改失败";
Console.WriteLine(str);
2.4.2)、修改单个属性
Students stu = new Students();
stu.StudentNO = ;
stu.StudentName = "露丝";
stu.StudentAge = ;
stu.StudentSex = "女";
stu.StudentProvince = "";
stu.StudentPhone = ""; //将当前实例附加到上下文来处理
dbContext.Students.Attach(stu); //写法一:
//这里修改了名字和性别,因为其他的属性字段是不可空的所以为了通过验证必须
//赋值(赋上了任意的值,但是我们并没有保存这些更改)
//dbContext.Entry<Students>(stu).Property("StudentName").IsModified = true;
//dbContext.Entry<Students>(stu).Property("StudentSex").IsModified = true; //写法二:Lambda表达式
dbContext.Entry<Students>(stu).Property<string>(s => s.StudentName).IsModified = true;
dbContext.Entry<Students>(stu).Property<string>(s => s.StudentSex).IsModified = true; int i = dbContext.SaveChanges();
string str = i == ? "修改成功" : "修改失败";
Console.WriteLine(str);
2.5)、查询整张数据表
foreach (var item in dbContext.Students)
{
//打印整张表的学号和姓名
Console.WriteLine("学号: " + item.StudentNO + " 姓名: " + item.StudentName);
}
2.5.2)、Linp表达式按条件查询数据
//查询整张表女生的信息
var temp = from s in dbContext.Students
where s.StudentSex == "女"
select s;
foreach (var item in temp)
{
//打印女生的信息
Console.WriteLine(item.StudentName);
}
使用ADO.NET实体数据模型的更多相关文章
- Visual 2015创建新项,缺少ADO.NET 实体数据模型的解决方法
现在的某度查资料真的很麻烦,突然我自身的VS2015创建EF的时候找不到 ADO.NET 实体数据模型,但是使用CodeFrist是可以生成数据表的.所有特别郁闷. 打开界面如下 某度半天,都没有查出 ...
- ADO.NET实体数据模型使用探索1
今天研究了下ADO.NET实体数据模型,想写个关于两张有外键关系的增改删查,以此来稍增加点难度. 编程环境:vs2010+sql2005 1.在SQL2005下建立三张表:学生信息表Student(S ...
- Model First:创建实体数据模型(ADO.NET 实体数据模型)
Microsoft Entity Framework是一个对象关系映射工具(Object Relational Mapping ,O/RM)工具.它可以让你从一个数据库自动地生成数据接入层.实体框架免 ...
- vs212创建mvc3项目,添加ADO.NET实体数据模型时产生 XXXX.Desiger.cs 文件为空
vs212创建mvc3项目,发现添加ADO.NET实体数据模型时,产生StoreDB.Desiger.cs文件为空 产生StoreDB.Desiger.cs文件为空 原因是,在vs2012中,添加AD ...
- Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源
熟悉Entity Framework应该对以下图片不陌生,他就是ADO.NET实体数据模型向导:可以将数据库的表自动生成模型类,或者创建Code First的模型文件. 但是这个模型向导默认只显示微软 ...
- 《MVC+EF》——用DBFirst创建ADO.NET实体数据模型和对象关系映射
转载于:http://blog.csdn.net/zhoukun1008/article/details/50528145 现在越来越喜欢MVC了,不光是因为ITOO中用到了他,而是因为它里面包含了很 ...
- ADO.NET实体数据模型中关于数据库字段默认值的处理
无论是Visual Studio 2010或者2013内置的ADO.NET实体数据模型都有一个小问题:数据库中有些字段已设置了默认值,但ADO.NET实体数据模型工具并不会自动进行设置. 这时需要手工 ...
- Visual Studio2017中如何让ADO.NET实体数据模型[EntityFramework]支持MariaDB&MySQL数据源
近期由于工作需要,需要重新修改设计系统的ADO.NET实体数据模型.edmx文件中间,在完成实际中途遇到一些实际使用问题,特此记录. 1. Visual Studio 2017 无法以实体设计模式打开 ...
- ADO.NET实体数据模型
本文说一下如何使用ADO.NET实体数据模型,并解释一些概念. 1,首先你要建立一个数据库.比如我在SQL2005上面建立了数据库student,包含两个表: 2,然后再项目上添加新建项: 3,打开新 ...
- Ado.Net实体数据模型EF,如何在代码中添加数据库连接密码
在创建EF模型的时候,VS2013提示说“在连接字符串中存储敏感数据可能有安全风险”,于是我选择了在代码中添加,可是如何通过代码添加呢? 我在网上百度了下,没有人说的清楚直观. 假设我们创建了一个名字 ...
随机推荐
- 日记o3o
12.17 段考超级烂,连sts都没考过,但是今晚来机房,nj发邮件的时候也给我发了,看来是可以继续学竞赛啦,很快心,也挺不开心的,毕竟以后想要跟上文化课就要很努力了,有能力但是得去花时间啊,寒假又要 ...
- lombok深入实践
官网视频 官网地址:https://projectlombok.org 官网的首页视频演示在eclipse中如何使用Lombok; Project Lombok is a java library t ...
- HTML5 3D 在智慧物业/地产管理系统中的应用
概述 该博文主要展示采用 HT for Web 提供的可视化技术,对智慧房产.智慧物业相关方向的可视化呈现做的一点尝试. 传统的 智慧房产/楼宇自动化/智慧物业 常会采用 BIM(建筑信息模型 Bui ...
- 多进程操作-进程队列multiprocess.Queue的使用
一.ipc机制 进程通讯 管道:pipe 基于共享的内存空间 队列:pipe+锁 queue 下面拿代码来实现Queue如何使用: 案例一: from multiprocessing import Q ...
- C#_.NetFramework_Web项目_EXCEL数据导出
[推荐阅读我的最新的Core版文章,是最全的介绍:C#_.NetCore_Web项目_EXCEL数据导出] 项目需引用NPOI的NuGet包: A-2:EXCEL数据导出--Web项目--C#代码导出 ...
- .net core 日常学习第一篇
使用vs 2015 update3 版本,安装sdk:https://dotnet.microsoft.com/download 可以运行 .net core 1.x版 或者使用vs 2017及以上 ...
- ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)
在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口 ...
- mesos-slave启动不起来
刚开始时候的状态 后来装了docker后
- javaWeb核心技术第十三篇之Ajax
Js--ajax--原理解释 概述:异步刷新网页,不会刷新整个页面. Get原理: <%@ page language="java" contentType="te ...
- SVN 回滚提交的代码
有的时候,代码提交错了,我们可以通过SVN回滚到指定的版本,然后在提交回滚后的代码,即为撤销提交. 回滚代码 重新提交刚才回滚后的代码