首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Entity Framework Core 2.0 入门

这里, 常规的做法是, 针对开发时的数据库, 可以通过命令直接创建和更新数据库. 而针对生产环境, 最好是生成sql脚本, 然后由相关人员去执行这个脚本来完成数据库的创建或者更新....如果是生成的sql脚本的话, 那么这些动作必须由您自己来完成. 然后查看一下生成的表. .../relationships 对于多对多关系, efcore需要使用一个中间表, 我想基本ef使用者都知道这个了, 我就直接贴代码吧....批量添加不同类型的数据: 使用context的AddRange或Add方法, DbContext可以推断出参数的类型, 并执行正确的操作....然后写查询方法: 看结果: EfCore到查询有两类语法, 一种是Linq方法, 另一种是Linq查询语法: 这种是Linq方法: 下面这种是Linq查询语法: 我基本都是使用第一种方法.

3.5K140

Entity Framework Core 2.0 入门

这里, 常规的做法是, 针对开发时的数据库, 可以通过命令直接创建和更新数据库. 而针对生产环境, 最好是生成sql脚本, 然后由相关人员去执行这个脚本来完成数据库的创建或者更新....如果是生成的sql脚本的话, 那么这些动作必须由您自己来完成. 然后查看一下生成的表. .../relationships 对于多对多关系, efcore需要使用一个中间表, 我想基本ef使用者都知道这个了, 我就直接贴代码吧....批量添加不同类型的数据: 使用context的AddRange或Add方法, DbContext可以推断出参数的类型, 并执行正确的操作....然后写查询方法: 看结果: EfCore到查询有两类语法, 一种是Linq方法, 另一种是Linq查询语法: 这种是Linq方法: 下面这种是Linq查询语法: 我基本都是使用第一种方法.

3.2K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用ASP.NET Core 2.0 建立规范的 REST API -- DELETE, UPDATE, PATCH 和 Log

    PATCH用来局部更新或创建资源  可以修改相关代码来支持局部更新或创建资源的操作: ? 这个我就不测试了,自增Id不适合这种操作。...annotations 数据注解,就是那种在属性上面的中括号样式的属性标签 如何数据注解无法满足要求,则可以使用自定义的验证方式 可以自定义数据注解 也可以让被验证类实现IValidatableObject...body里面带回去 为EFCore的Model添加约束 我之前还没有为EFCore的model添加约束,这里我添加上(由于我使用的是内存数据库,所以下面的约束是不起作用的,这些约束只有在关系型数据库才起作用...到目前为止,我使用的是数据注解的方式来为ResourceModel添加验证规则,这样做其实不是很好,没有关注点分离(Soc,Seperation of Concerns)。...使用Serilog 在实际应用中只把日志记录到控制台或Debug窗口是没用的,最好的办法还是记录到文件或者数据库等。

    1.9K20

    .net core web api + Autofac + EFCore 个人实践

    鉴于具体服务实现、数据访问等跟之前基于asp.net web api的实现已经有了很大不同,这里还是分析下各CRUD方法吧。...老WebAPI中,是需要通过Route来设置,具体请求方法约束需要单独通过类似HttpGet、HttpPut等来约束,而.NET CORE中,可以合二为一,路由设置和请求方法约束一起搞定。...很明显,手动写统计sql的方式效率要高出很多,这里为什么没有手写,还是用了EFCore呢?...两个原因吧,其一,我想练习下EFCore,其二,这样可以做到随意切换数据库,我不想在代码层面引入过多跟具体数据库有关的语法。...,就会发现,DAL中添加消费明细就只有一个往Manifest表中添加消费明细记录的操作,日消费清单Daily表的数据实际上是由SQLserver触发器来自动维护的。

    1.5K40

    dotnet scaffold – .NET 的下一代内容创建

    作者:Sayed Ibrahim Hashimi 排版:Rani Sun Visual Studio 中为ASP.NET Core 项目搭建脚手架是一项长期特性,是在 ASP.NET Core 发布后不久添加的...根据从命令行操作中获得的用户反馈,我们了解到用户需要一种交互式的命令行界面(CLI)体验来进行脚手架操作。为了实现这一目标,我们一直在开发一种新的交互式 CLI 工具 dotnet scaffold。...此 CLI 工具现已发布预览版。在本文中,我们将介绍如何获取和使用这个新的命令行工具。此工具是开源的,您可以在 scaffold 存储库 中查看代码。...完成后,您应该会看到类似于以下屏幕截图的结果。 执行此操作后,将对项目应用以下更改。...为了准备数据库,我们需要迁移,然后更新数据库。使用以下命令执行此操作。

    8700

    Asp.Net Core 轻松学-使用MariaDBMySqlPostgreSQL和支持多个上下文对象

    EFCore 连接 MSSQL 的使用方法,在本章中,将继续介绍如何利用 EFCore 连接到 MariaDB/MySql 和 PostgreSQL 数据库,同时,在一个项目中,如何添加多个数据库上下文对象...,并从 NuGet 仓库引用包 Pomelo.EntityFrameworkCore.MySql,我本地安装的数据库是 MariaDB,从介绍中得知,MariaDB 和 MySql 的使用方式几乎是完全一致的...MSSQL 数据库的使用方式是完全一致的,这点非常难得,通过 EFCore,无论你连接到的是哪种类型的数据库,其 API 的使用方式几乎是没有什么不同的,可以让开发人员平滑的过渡。...非常完美,到这一步,你已经完成了使用 EFCore 连接到 MariaDB/MySql 数据库的过程,先不要急做各种 CURD 的操作,下面,我们继续在项目中使用 EFCore 连接 PostgreSQL...到这里,我们已经完成了使用 EFCore 连接到 PostgreSQL 的过程,在 PostgreSQL 中,由于没有指定 Schema ,所以默认数据表会被放在 Schema public 下面,有关更多

    2.4K51

    Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库

    EFCore 包;本文并不打算深入的介绍 EFCore 的各种使用方式、原理解析,本文重点在于解决让初学者在10分钟内快速使用上 EFCore 的问题。...AddDbContext方法,并配置了数据库连接字符串为配置文件中的 "ConnectionStrings:Forum" 节点的值 1.5 在项目的包管理器控制台中使用命令根据实体业务模型创建数据库...1.6 在项目中执行 CURD 操作 至此,数据库创建完成,为了在控制器中使用 ForumContext 对象,我们在 HomeController 中使用依赖注入的方式获得 FormContext...,还是以上面创建好的数据库 Forum 为例子 2.1 基于现有数据库生成实体对象,在项目中的包管理器控制台输入命令,指定使用的是 Microsoft.EntityFrameworkCore.SqlServer...表示延迟加载此关联对象,在 Code First 中,导航属性还起到主外键关系定义的作用 结束语 本文介绍两种使用 EF Core 的方式 通过一个简单的 Forum 示例来一步一步的了解了 EFCore

    1.7K21

    ASP.NET MVC 5 - 给电影表和模型添加新字段

    在本节中,您将使用Entity Framework Code First来实现模型类上的操作。从而使得这些操作和变更,可以应用到数据库中。...这样做会增加下面的语句: using MvcMovie.Models; Code First Migrations调用Seed的方法,每个迁移(程序包管理器控制台更新数据库),此方法用于updates数据...此迁移类将创建新的数据库,这也就是为什么在之前的步骤中你要删除movie.mdf文件。 在软件包管理器控制台窗口中,输入"add-migration Initial"命令来创建初始迁移。"...你看到这个错误,因为更新的的Movie模型类中比现在Movie现有数据库表的schema不同。 (在数据库表中没有Rating列。) 有几个解决错误的方法: 1....使用Code First Migrations来更新数据库schema。 在本教程中,我们将使用Code First Migrations方法。 更新Seed 方法,以使它可以给新列提供一个值。

    2.4K80

    .net 温故知新:【10】.NET ORM框架EFCore使用入门之CodeFirs、DBFirst

    从这篇ORM完成之后就将进入asp.net core的学习总结! EFCore Entity Framework Core (EF Core) 是适用于 .NET 的新式对象数据库映射器。...EFCore入门 在上面的EFCore介绍中我们又看到了提供程序描述,之前文章多次提到这个提供程序是.net框架中随处可见的,也就是通过这些不同的提供程序实现扩展和适配。...本文我用两种数据库,sqlite和sqlserver并分别用code-first(代码优先)模式和db-frist(数据库优先)模式演示EFCore的使用。...搭建基架,为模型创建一组初始表。该命令完成后会生成一个Migration文件夹包含两个类,一个数据库创建类InitialCreate是我们定义的,可以按需求更改名称。...AsNoTracking使用,EFCore默认会跟踪实体,也就是保存在内存中,用于更新删除等操作。如果只是查询数据而不用跟踪则使用AsNoTracking查询。 并发控制。 .....

    2.9K30

    Asp.NET Core2.0 项目实战入门视频课程_完整版

    (常年搬砖,苦于没有对新技术了解的朋友们) .NET CORE的版本 目前适用的是.Net Core2.0.3,会持续更新,如果.NET Core出到了3.0我也会出相关的课程信息更新到3.0。...00:35:14 2、分页和分组功能实现00:35:18 3、统计学生信息00:15:29 4、EF迁移文件生成的两种方式(CLI和PMC)00:17:07 第6章复杂数据类型的实践 1、使用Dto来替代实体做验证...:46 5、数据库表结构说明,完善迁移命令00:01:55 第7章复杂查询的使用 1、贪懒加载和Razor语法的进阶使用00:41:02 2、完善课程表功能00:02:05 第8章完成课程、教师等功能...中的并发处理和解决方案 1、并发的介绍00:02:43 2、使用EFCore处理并发冲突00:42:33 第10章高级课程延伸 1、继承的实现00:06:41 2、使用EFCORE调用原生sql查询语句...诚如我在视频后面说的,下一步的视频课程我会讲Angular的入门实战。 但是为了民主点,我决定开设一个投票。

    2.6K110

    .NET Core.NET5.NET6 开源项目汇总1:常用必备组件

    ORM是一个对象关系映射器,它负责数据库和编程语言之间的映射。Dapper通过扩展IDbConnection提供一些有用的扩展方法去查询您的数据库。...主要优势: 官方建议使用DDD领域驱动设计思想开发。 支持多种数据库,简单配置添加链接的配置即可。 多数据库的支持。 支持分表操作,自定义分表策略的支持。...开源地址:https://github.com/overtly/core-data EFCore.Sharding【国产】 读写分离分库分表一直是数据库领域中的重难点,当数据规模达到单库极限的时候,就不得不考虑分表方案...我们知道,EF Core中不支持高效的删除和更新数据,所有的更新和操作都是逐条数据处理。...支持Take()、Skip()来限制删除和更新数据的范围 批量删除和批量更新都支持通过Take()、Skip()来实现部分删除和部分更新。 支持多数据库 ?

    4.1K10

    用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 + 项目准备

    在ASP.NET Core项目里可以通过多种方式来创建Controller,当然最建议的方式还是通过继承AspNetCore.Mvc.Controller这个抽象类来建立Controller。...使用自定义验证属性标签: 把该标签放到name属性上 使用刚才的请求,其结果是: 另一种方式,在Person类实现IValidatableObject接口 但是我使用这种方法并不好用,不知道我哪里用错了...做一些种子数据: 这时需要修改一下Program.cs 来添加种子数据:  好的, 到现在我写一些临时的代码测试一下MyContext: 直接从数据库中读取Domain Model 然后返回,...也就是说会存在这种情况, 某个Controller的Action方法里, 使用了多个不同的Repository, 分别做了个新增, 修改, 删除等操作, 但是保存的时候还是需要MyContext来做,...之前讲的使用Repository和依赖注入解耦的方式很大程度上较少了重复的代码, 而把Controller和EFCore解耦还有另外一个好处, 因为我有可能会把EFCore换掉, 去使用Dapper ,

    2.7K72

    生成的迁移类

    EFCore 2.1出来有一段时间了,里面的新功能还没怎么用,今天研究下如何使用EF Core 2.1添加种子数据。...添加第一个种子数据 直接在DBContext的OnModelCreating方法里使用HasData()方法: 这里我添加了一个省份的种子数据,并写上了主键Id的值。...数据库该表的主键Id是int自增的。Id为1的数据曾经存在过,但是被我删除了。...看红线那两句话,EFCore在执行的过程中临时更改了设置,可以插入主键的值,然后又禁用了插入主键。...所以正确的做法是: 这次Add-Migration没有报错,迁移也成功了,看一下最后的数据: OK 如果无法在Model里设置主键/外键 有时,我们在主从关系的Model里不明确定义外键;有时候我们

    1.1K10

    Entity Framework Core 2.1,添加种子数据

    EFCore 2.1出来有一段时间了,里面的新功能还没怎么用,今天研究下如何使用EF Core 2.1添加种子数据。...这部分的官方文档地址是:https://docs.microsoft.com/en-us/ef/core/modeling/data-seeding 我们在开发时总是需要添加一些种子数据的,所以这个功能还是比较有用的...添加第一个种子数据 直接在DBContext的OnModelCreating方法里使用HasData()方法: ? 这里我添加了一个省份的种子数据,并写上了主键Id的值。...看红线那两句话,EFCore在执行的过程中临时更改了设置,可以插入主键的值,然后又禁用了插入主键。 数据库里面的数据 ?...报错了,所以主键值是必填的。 当我填写了主键值之后,一切都是好用的了: ? ? 更改现有的种子数据 我在HasData方法里更改了现有的种子数据,但是主键的值并没有改: ?

    1.7K10

    10个小技巧助您写出高性能的ASP.NET Core代码

    I/O操作意味着对文件执行一些操作,比如上传或检索文件。它可以是任何操作如:图像上传,文件上传或其他任何操作。如果您试图以同步的方式完成它,那么它会阻塞主线程并停止其他后台执行,直到I/O完成为止。...我们还可以通过优化数据访问逻辑、数据库表和查询来提高应用程序的性能。...数据访问逻辑代码在性能上起着至关重要的作用。如果您的代码没有优化,那么应用程序的性能通常就不会很好。 但是,如果您在EFCore中以优化的方式编写数据访问逻辑,那么肯定会提高应用程序的性能。...您可以使用EF Core中的一些可用功能,可以帮助您在数据库端筛选数据的操作,如:WHERE,Select等。 使用Take和Skip来获取我们所必须要显示的数量的记录。...这里可以举一个分页的例子,在这个例子中,您可以在单击页码的同时使用Take和Skip来获取当前页面的数据。

    4.5K31

    通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行

    另一种更安全的方法是通过在 web.config 中包含下列元素来关闭整个应用程序的内核模式缓存: 您还可以使用注册表设置来全局性地禁用内核模式输出缓存...幸运的是,此问题已经在 ASP.NET 2.0 中得到了解决。现在的 RedirectFromLoginPage 以相同的方式接受在 web.config 中为临时和永久身份验证票证指定的超时。...Helper 方法是解决 ASP.NET 1.1 中另一个错误的方法,如果您使用 HttpCookieCollection 的字符串索引生成器来检查不存在的 Cookie,此错误会导致虚假 Cookie...我只说一点就够了,ASP.NET 依赖于有限的线程池处理请求,如果所有线程都被占用来等待数据库查询、Web 服务调用或其他 I/O 操作完成,则在某个操作完成并且释放出一个线程之前,其他请求都必须排队等待...确定数据访问问题的方式是运行 SQL Server Profiler 或等效的工具以查看后台正在执行的操作。检查应用程序和数据库之间的通信之后,性能调整才完成。

    3.6K80

    用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) + 准备项目

    所以, 我可以不采用这个构建模式创建IWebHost, 改为直接new一个: ? ? 这样就正确了. 可以看到日志信息的第一行内容是一样的, 第二行是各自的日志信息....在Startup.cs里面注册DbContext, 我使用的是内存数据库: ? 这里要注意: 由于使用的是内存数据库, 所以迁移等一些配置都可以省略了.... 做一些种子数据: ? ?...也就是说会存在这种情况, 某个Controller的Action方法里, 使用了多个不同的Repository, 分别做了个新增, 修改, 删除等操作, 但是保存的时候还是需要MyContext来做,...之前讲的使用Repository和依赖注入解耦的方式很大程度上较少了重复的代码, 而把Controller和EFCore解耦还有另外一个好处, 因为我有可能会把EFCore换掉, 去使用Dapper ?..., 因为如果项目比较大, 或者越来越大, 有一部分业务可能会需要性能比较好的Micro ORM来代替或者其它存储方式等. 所以引用EFCore的地方越少, 就越容易替换.

    1.1K00

    项目配置

    配置文件总会包含这种多层结构的, 更好的办法是把类似的配置进行分组获取, 可以使用IConfiguration的GetSection()方法来获取局部的配置: 当有多个配置文件的时候, 配置数据的加载和它们在程序中指定的顺序是一样的...里面注册DbContext, 我使用的是内存数据库: 这里要注意: 由于使用的是内存数据库, 所以迁移等一些配置都可以省略了.......做一些种子数据: 这时需要修改一下Program.cs 来添加种子数据:  好的, 到现在我写一些临时的代码测试一下MyContext: 直接从数据库中读取Domain Model 然后返回,...也就是说会存在这种情况, 某个Controller的Action方法里, 使用了多个不同的Repository, 分别做了个新增, 修改, 删除等操作, 但是保存的时候还是需要MyContext来做,...之前讲的使用Repository和依赖注入解耦的方式很大程度上较少了重复的代码, 而把Controller和EFCore解耦还有另外一个好处, 因为我有可能会把EFCore换掉, 去使用Dapper ,

    83620
    领券