前景:要操作的数据表必须添加主键(方式:进入数据库-->数据表名-->设计-->列名右键-->设置主键)

可在服务器资源管理器中查看是否设置了主键(主键会有一把钥匙的图样)

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实体数据模型的更多相关文章

  1. Visual 2015创建新项,缺少ADO.NET 实体数据模型的解决方法

    现在的某度查资料真的很麻烦,突然我自身的VS2015创建EF的时候找不到 ADO.NET 实体数据模型,但是使用CodeFrist是可以生成数据表的.所有特别郁闷. 打开界面如下 某度半天,都没有查出 ...

  2. ADO.NET实体数据模型使用探索1

    今天研究了下ADO.NET实体数据模型,想写个关于两张有外键关系的增改删查,以此来稍增加点难度. 编程环境:vs2010+sql2005 1.在SQL2005下建立三张表:学生信息表Student(S ...

  3. Model First:创建实体数据模型(ADO.NET 实体数据模型)

    Microsoft Entity Framework是一个对象关系映射工具(Object Relational Mapping ,O/RM)工具.它可以让你从一个数据库自动地生成数据接入层.实体框架免 ...

  4. vs212创建mvc3项目,添加ADO.NET实体数据模型时产生 XXXX.Desiger.cs 文件为空

    vs212创建mvc3项目,发现添加ADO.NET实体数据模型时,产生StoreDB.Desiger.cs文件为空 产生StoreDB.Desiger.cs文件为空 原因是,在vs2012中,添加AD ...

  5. Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源

    熟悉Entity Framework应该对以下图片不陌生,他就是ADO.NET实体数据模型向导:可以将数据库的表自动生成模型类,或者创建Code First的模型文件. 但是这个模型向导默认只显示微软 ...

  6. 《MVC+EF》——用DBFirst创建ADO.NET实体数据模型和对象关系映射

    转载于:http://blog.csdn.net/zhoukun1008/article/details/50528145 现在越来越喜欢MVC了,不光是因为ITOO中用到了他,而是因为它里面包含了很 ...

  7. ADO.NET实体数据模型中关于数据库字段默认值的处理

    无论是Visual Studio 2010或者2013内置的ADO.NET实体数据模型都有一个小问题:数据库中有些字段已设置了默认值,但ADO.NET实体数据模型工具并不会自动进行设置. 这时需要手工 ...

  8. Visual Studio2017中如何让ADO.NET实体数据模型[EntityFramework]支持MariaDB&MySQL数据源

    近期由于工作需要,需要重新修改设计系统的ADO.NET实体数据模型.edmx文件中间,在完成实际中途遇到一些实际使用问题,特此记录. 1. Visual Studio 2017 无法以实体设计模式打开 ...

  9. ADO.NET实体数据模型

    本文说一下如何使用ADO.NET实体数据模型,并解释一些概念. 1,首先你要建立一个数据库.比如我在SQL2005上面建立了数据库student,包含两个表: 2,然后再项目上添加新建项: 3,打开新 ...

  10. Ado.Net实体数据模型EF,如何在代码中添加数据库连接密码

    在创建EF模型的时候,VS2013提示说“在连接字符串中存储敏感数据可能有安全风险”,于是我选择了在代码中添加,可是如何通过代码添加呢? 我在网上百度了下,没有人说的清楚直观. 假设我们创建了一个名字 ...

随机推荐

  1. laravel中间件的使用

    简介HTTP 中间件提供了为过滤进入应用的 HTTP 请求提供了一套便利的机制.例如,Laravel 内置了一个中间件来验证用户是否经过授权,如果用户没有经过授权,中间件会将用户重定向到登录页面,否则 ...

  2. PHP实现微信提现(企业付款到零钱)

    怎么开通企业付款到零钱? 有的商户号的产品中心是没有这个功能的,不过,该功能的pid(product id)是5,只要随便进去某一个产品,在地址栏把pid改为5. 即可进入该功能页面,进行开通,不过要 ...

  3. .NET Application,Session,Cookie,ViewState,Cache对象用法

    作用域 保存地址 生命周期Application 应用程序 服务器内存 IIS启动Session 整个站点 服务器内存 Session到时 默认20分钟Cashe 应用程序 服务器内存 应用程序的周期 ...

  4. Thinkphp 5.0.15 设计缺陷导致Insert/update-SQL注入 分析

    分析 与上一个漏洞类似,这个也是前端可以传入一个数组变量,如['exp','123','123'],后端根据array[0]来将array[1]和array[2]直接拼接到SQL语句中. 由于TP只是 ...

  5. SpringCloud的入门学习之概念理解、Config配置中心

    1.SpringCloud Config分布式配置中心.分布式系统面临的配置问题. 答:微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务.由于每个 ...

  6. 阿里面试实战题3----String,StringBuilder,StringBuffer区别

    String public final class String implements java.io.Serializable, Comparable<String>, CharSequ ...

  7. js写个小时钟

    原生js写个小时钟 一.代码 今天美化博客园自学的哈,分享一下 <!--标题变成时钟--> <div id="Header1_HeaderTitle">&l ...

  8. 从华为“鸿蒙”备胎看IT项目建设

    别误会啊,本文并不在讲大家在做IT项目建设的时候学华为做一个备胎系统,以防正主系统崩掉之后能够及时替换到备胎系统里面,不影响业务. 前段时间华为被美帝制裁,然后各家组织对华为各种限制.然而华为整体布局 ...

  9. Ubantu 安装SSH

    1.检查是否安装SSH dpkg --get-selections | grep ssh 一般情况下Ubantu 默认集成 openssh-client,但要用sftp的话还需要安装openssh-s ...

  10. SQL高效运行注意事项(四)

    为了SQLSERVER能高效运行,SQLSERVER的磁盘子系统是一个重要的方面 Avg. Disk Sec/Read 这个计数器是指每秒从磁盘读取数据的平均值 下面的列表显示这个计数器值的范围,并指 ...