ef

使用EF Core+CodeFirst建立ASP.NET Core MVC项目

我们两清 提交于 2019-12-27 05:23:57
本篇随笔介绍如何使用.NET Core+EF Core创建Web应用程序 首先借用官网的话简单介绍一下ASP.NET Core ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且连接 Internet 的新式应用程序。 使用 ASP.NET Core可以: 创建 Web 应用程序和服务、IoT 应用和移动后端。 在 Windows、macOS 和 Linux 上使用喜爱的开发工具。 部署到云或本地。 在 .NET Core 或 .NET Framework上运行。 我的开发工具:Visual Studio2017、SqlServer2012 我的开发环境:.NET Core2.2 接下来介绍使用Visual Studio2017创建Web项目,步骤如下: 1、选择.NET Core→ASP.NET Core Web应用程序,点击确定 2、选择.NET Core、ASP.NET Core2.2,选择Web应用程序(模型视图控制器)即MVC,暂时不进行身份验证,点击确定 得到如下解决方案: 3、使用工具→NuGet包管理→程序包管理控制台添加EF依赖 在NuGet官网找到Microsoft.EntityFrameworkCore包 网址: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore

EF中更新数据

被刻印的时光 ゝ 提交于 2019-12-26 02:34:51
原来EF中不查询数据库也可以直接更新! EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态; 一、通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值;实体对象被修改的属性 在 代理包装类对象里 的对应属性状态会被修改记录下修改状态,等到调用SaveChanges时,EF会遍历其管理的每个实体对象,并根据其 包装类对象 的状态,生成增删改查sql语句并执行; 此例中修改操作,会生成 修改的sql语句(注意:此处只为修改过的属性生成sql语句),最后执行。 缺点:修改先还要查询,难受~~~~ 1 //1.先查询要修改的原数据 2 Models.BlogArticle modelNew = db.BlogArticles.Where(a => a.AId == model.AId).FirstOrDefault(); 3 4 //2.设置修改后的值 5 modelNew.ATitle = "新的数据"; 6 modelNew.AContent = "新的数据~~~~~~"; 7 modelNew.ACate = 12; 8 9 //3.跟新到数据库 10 db.SaveChanges(); 二、为避免先查询数据库,可以直接将 被修改的实体对象 添加到 EF中管理(此时为附加状态Attached),并手动设置其为未修改状态

ASP.NET MVC EF直接更新数据(不需查询)

假装没事ソ 提交于 2019-12-26 02:34:18
EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动导入MVC程序集,因为默认.NET环境(GAC)中没有这个程序集 1: EF数据上下文 继承于 DbContext ; DBQuery<T> ,支持延迟加载:只有当使用到数据的时候,才去查询数据库; 主要成员:表映射的实体集合 Set<T>,Entry<T>()   context.Model -->Dbset<Model>   context.set<Model>() -->Dbset<Model>   //使用状态版的时候,执行修改/删除的时候必须指定主键。 2: EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态; 3: [EF对象管理容器] : 每个通过EF数据上下文操作的实体对象,都需要存在上下文的容器中,一旦通过上下文的某个方法操作了实体对象后,那么上下文就会给它加一个状态标识。 但调用上下文的SaveChanges方法的时候,上下文就会遍历容器中的所有对象,并检查他们的状态标识,并依照标识的值进行相应的增删改查sql操作 一、通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值;实体对象被修改的属性 在

EF直接更新数据(不需查询)

十年热恋 提交于 2019-12-26 02:34:01
EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态; 一、通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值;实体对象被修改的属性 在 代理包装类对象里 的对应属性状态会被修改记录下修改状态,等到调用SaveChanges时,EF会遍历其管理的每个实体对象,并根据其 包装类对象 的状态,生成增删改查sql语句并执行; 此例中修改操作,会生成 修改的sql语句(注意:此处只为修改过的属性生成sql语句),最后执行。 缺点:修改先还要查询,难受~~~~ 1 //1.先查询要修改的原数据 2 Models.BlogArticle modelNew = db.BlogArticles.Where(a => a.AId == model.AId).FirstOrDefault(); 3 4 //2.设置修改后的值 5 modelNew.ATitle = "新的数据"; 6 modelNew.AContent = "新的数据~~~~~~"; 7 modelNew.ACate = 12; 8 9 //3.跟新到数据库 10 db.SaveChanges(); 二、为避免先查询数据库,可以直接将 被修改的实体对象 添加到 EF中管理(此时为附加状态Attached),并手动设置其为未修改状态(Unchanged)

EF直接更新数据(不需查询)

送分小仙女□ 提交于 2019-12-26 02:33:36
EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态; 一、通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值;实体对象被修改的属性 在 代理包装类对象里 的对应属性状态会被修改记录下修改状态,等到调用SaveChanges时,EF会遍历其管理的每个实体对象,并根据其 包装类对象 的状态,生成增删改查sql语句并执行; 此例中修改操作,会生成 修改的sql语句(注意:此处只为修改过的属性生成sql语句),最后执行。 缺点:修改先还要查询,难受~~~~ //1.先查询要修改的原数据 Models.BlogArticle modelNew = db.BlogArticles.Where(a => a.AId == model.AId).FirstOrDefault(); //2.设置修改后的值 modelNew.ATitle = "新的数据"; modelNew.AContent = "新的数据~~~~~~"; modelNew.ACate = 12; //3.跟新到数据库 db.SaveChanges(); 二、为避免先查询数据库,可以直接将 被修改的实体对象 添加到 EF中管理(此时为附加状态Attached),并手动设置其为未修改状态(Unchanged),同时设置被修改的实体对象 的 包装类对象 对应属性为修改状态。

EF直接更新数据(不需查询)

五迷三道 提交于 2019-12-26 02:33:25
EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态; 一、通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值;实体对象被修改的属性 在 代理包装类对象里 的对应属性状态会被修改记录下修改状态,等到调用SaveChanges时,EF会遍历其管理的每个实体对象,并根据其 包装类对象 的状态,生成增删改查sql语句并执行; 此例中修改操作,会生成 修改的sql语句(注意:此处只为修改过的属性生成sql语句),最后执行。 缺点:修改先还要查询,难受~~~~ 1 //1.先查询要修改的原数据 2 Models.BlogArticle modelNew = db.BlogArticles.Where(a => a.AId == model.AId).FirstOrDefault(); 3 4 //2.设置修改后的值 5 modelNew.ATitle = "新的数据"; 6 modelNew.AContent = "新的数据~~~~~~"; 7 modelNew.ACate = 12; 8 9 //3.跟新到数据库 10 db.SaveChanges(); 二、为避免先查询数据库,可以直接将 被修改的实体对象 添加到 EF中管理(此时为附加状态Attached),并手动设置其为未修改状态(Unchanged)

七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

笑着哭i 提交于 2019-12-22 19:58:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能。 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理 目录: 数据访问层 实体框架(EF)简述 什么是代码优先的方法? 实验8——在项目中添加数据访问层 关于实验8 实验9——创建数据输入屏幕 实验10——获取服务端或控制器端传递的数据。 实验11——重置及取消按钮 实验12——保存数据。库记录并更新表格 实验13——添加服务器端验证 实验14——自定义服务器端验证 结论 数据访问层 在实际开发中,如果一个项目不包含任何数据库,那么这个项目是不完整的,我们在一二节实例中未涉及数据库,在本节开始,实验8中讲解一个关于数据库和数据库层的实例。 本节将使用SQL Server和EF(Entity Framework)创建相关的数据库及数据库访问层。 简述实体框架(EF) EF是一种ORM工具,ORM表示对象关联映射。 在RDMS中,对象称为表格和列对象,而在.net中(面向对象

用ASP.NET Core MVC 和 EF Core 构建Web应用 (四)

不问归期 提交于 2019-12-20 03:55:12
本节使用 EF Core 迁移功能管理数据模型更改。 迁移简介 开发新应用程序时,数据模型会频繁更改。每当模型更改时,模型都无法与数据库保持同步。 本节内容首先配置 Entity Framework 以创建数据库(如果不存在)。 之后,每当更改数据模型(添加、删除或更改实体类或更改 DbContext 类)时,你都可以删除数据库,EF 将创建匹配该模型的新数据库并用测试数据为其设定种子。 这种使数据库与数据模型保持同步的方法适用于多种情况,但将应用程序部署到生产环境的情况除外。 当应用程序在生产环境中运行时,它通常会存储要保留的数据,以便不会在每次更改(如添加新列)时丢失所有数据。 EF Core 迁移功能可通过使 EF 更新数据库 架构而不是创建新数据库来解决此问题。 用于进行迁移的 Entity Framework Core NuGet 包 要使用迁移,可使用“包管理器控制台”(PMC) 或命令行接口 (CLI)。 Microsoft.EntityFrameworkCore.Tools.DotNet 中提供了适用于命令行接口 (CLI) 的 EF 工具。 若要安装此程序包,请将它添加到 .csproj 文件中的 DotNetCliToolReference 集合,如下所示。 注意:必须通过编辑 .csproj 文件来安装此包;不能使用 install-package

[翻译 EF Core in Action] 1.5 关于NoSql

二次信任 提交于 2019-12-20 03:50:09
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core 书籍。 原版地址 . 是除了官方文档外另一个学习EF Core的不错途径, 书中由浅入深的讲解的EF Core的相关知识。因为没有中文版,所以本人对其进行翻译。 预计每两天一篇更新 PS: 翻译难免限于本人水平有不准确的地方,建议英文水平不错的同学直接查看原版,有不足的地方欢迎指正 第一部分目录导航 关于NoSql 在讨论关系型数据库时,我们不能不提到非关系型数据库,也就是NoSQL(参见 http://mng.bz/DW63 ). 关系型数据库和非关系型数据库在现代应用程序中都扮演着重要的角色,我在一个应用程序中同时使用了Sql Server(关系型数据库)和Azure表(非关系数据库)来处理不同的业务需求 EF Core被设计为处理关系型数据库和非关系型数据库,与EF 6.x不同,后面只围绕着关系型数据库而设计. 本书介绍的许多原则适用与这两种数据库,但是由于关系型数据库本质上比非关系型数据库复杂许多,因此使用关系型数据库需要更多的命令. 你会在一整章中看到专门介绍仅在关系型数据库中使用的命令. 例如第7章的内容就是关系数据库建模 EF Core 2.0包含Azure

[翻译 EF Core in Action 1.7] MyFirstEfCoreApp访问的数据库

会有一股神秘感。 提交于 2019-12-20 03:49:06
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core 书籍。 原版地址 . 是除了官方文档外另一个学习EF Core的不错途径, 书中由浅入深的讲解的EF Core的相关知识。因为没有中文版,所以本人对其进行翻译。 预计每两天一篇更新 PS: 翻译难免限于本人水平有不准确的地方,建议英文水平不错的同学直接查看原版,有不足的地方欢迎指正 第一部分目录导航 MyFirstEfCoreApp访问的数据库 EF Core是访问数据库的技术,但是数据库从何而来呢?EF Core提供了两个选择:EF Core为你构建数据库称为 Code First ,或者在外部(DBMS)构建数据库称为 Db First EF6 在EF6中可以使用`EDMX`数据库设计器可视化的设计数据库,称为`Design First`. 但是EF Core并不支持也没有计划添加 本章跳过了创建数据库的部分,我们假设它已经存在 NOTE 在代码中我使用了用于单元测试的EF Core命令创建了数据库,因为它简单方便. 第2章介绍了使用EF Core创建数据库,第11章介绍了创建和更改数据库的所有方面 对于 MyFirstEfCoreApp 应用