使用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提示说“在连接字符串中存储敏感数据可能有安全风险”,于是我选择了在代码中添加,可是如何通过代码添加呢? 我在网上百度了下,没有人说的清楚直观. 假设我们创建了一个名字 ...
随机推荐
- 范罗士空气净化器PT65评测
买了一台空气净化器,之前网上查了查,哟,是个知名品牌,做碎纸机的. 你问我为啥找个卖碎纸机的买空气净化器?因为年轻,咱们往下看 包装还可以 一打开就有疑问了,这塑料味道不对呀,三手料也不该这个味儿啊. ...
- 如何使redis中存放的都是热点数据?
当redis使用的内存超过设置的最大内存时,会触发redis的key淘汰机制,在redis3.0中的6中淘汰策略如下: (1)noeviction :不删除策略.当达到最大内存限制时,如果需要使用更多 ...
- 基于 Swoole 的微信扫码登录
随着微信的普及,扫码登录方式越来越被现在的应用所使用.它因为不用去记住密码,只要有微信号即可方便快捷登录.微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众平台,所以扫码登录只能自行实 ...
- Idea2019激活码
此教程仅用作个人学习,请勿用于商业获利,造成后果自负!!! 此教程已支持最新2019.2版本 此教程实时更新,请放心使用:如果有新版本出现猪哥都会第一时间尝试激活: idea官网下载地址:http:/ ...
- Spring注解式AOP面向切面编程.
1.AOP指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式.aop底层是动态代理. package com.bie.config; import org.aspectj.lan ...
- ES6新语法(二)
1.解构 在ES6中,可以使用解构从数组和对象提取值并赋值给独特的变量,即将数组或对象中的值,拆成一个一个变量. 解构:自动解析数组或对象中的值,并赋值给指定的变量.. ...
- Linux-用户/分组相关以及处理密码遗忘
一.用户创建 1.简单创建 useradd 用户名 2.指定目录创建用户 useradd -d 目录路径 用户名 //注意这一类的目录路径必须写当前所在文件夹的相对路径而不能直接写目录名称 3.指定用 ...
- Add a Class from the Business Class Library从业务类库添加类(EF)
In this lesson, you will learn how to use business classes from the Business Class Library as is. Fo ...
- 自学_数据库<三>
数据库 数据库概述 DBMS(DataBase Management System,数据库管理系统)和数据库.平时谈到"数据库"可能有两种含义:MSSQLServer.Oracle ...
- 父子间的通信,以及ref
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...