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

.NET 云原生架构师训练营(模块二 基础巩固 EF Core 介绍)--学习笔记

语言的抽象 多出来的对事务、连接池、迁移、种子数据等一些功能 多数情况下 ORM 生成的 SQL 脚本比你自己写的要好 Repository 仓储 在领域层和数据映射层之间,像一个内存级别的领域对象集合 为领域业务的单元测试提供替换点...工作单元) DB Set(Repository 仓储) EF Core 提供一个 DB Context 和多个 DB Set 组合完成数据查询和更新操作的 ORM 框架 EF Core快速开始示例 创建一个空的...web api 项目 添加 Pomelo.EntityFrameworkCore.Mysql 的 nuget 包引用 创建实体 创建 DbContext 配置连接字符串并且注入 DbContext 使用... Projects { get; set; } public DbSet Members { get; set; }...public DbSet Assistants { get; set; } public DbSet<Project.ProjectGroup

82310

.NET 云原生架构师训练营(模块二 基础巩固 EF Core 介绍)--学习笔记

语言的抽象 多出来的对事务、连接池、迁移、种子数据等一些功能 多数情况下 ORM 生成的 SQL 脚本比你自己写的要好 Repository 仓储 在领域层和数据映射层之间,像一个内存级别的领域对象集合 为领域业务的单元测试提供替换点...工作单元) DB Set(Repository 仓储) EF Core 提供一个 DB Context 和多个 DB Set 组合完成数据查询和更新操作的 ORM 框架 EF Core快速开始示例 创建一个空的...web api 项目 添加 Pomelo.EntityFrameworkCore.Mysql 的 nuget 包引用 创建实体 创建 DbContext 配置连接字符串并且注入 DbContext 使用... Projects { get; set; } public DbSet Members { get; set; }...public DbSet Assistants { get; set; } public DbSet<Project.ProjectGroup

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

    EF 约定介绍

    知道哪些类型包含在当前模型中,因此,我们需要自定义一个ZdyNameDbContext,并继承DbContext,并在自定义DbContext中暴露需要暴露的类型,这样在Code First开发模式中,...就可以使用 context(数据库上下文),使用这些预先暴露的DbSet类型,具体的代码如下:   public class EFStudyDbContext:DbContext {...//暴露City的DbSet类型的属性 public DbSet Citys { get; set; } //暴露Town的DbSet类型的属性...关联实体的主键名 (3)、关联实体的主键名 注: (1)、当外键关系被检测到,Code First会根据外键的可空性来推断关系的具体形式;如果外键属性是可空的,那么关系会被设置为可选的,否则,关系就是必选的.... (2)、当关联实体的外键属性被设置为不为空,Code First会设置级联删除,反之不会。

    1.6K100

    Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据

    这在开发周期的早期阶段通常很有用(比如设计领域实体时),从单元测试的角度也很有用。...Students { get; set; } 22 } 23 } 这样一来,无论什么时候创建上下文类,Database.SetInitializer()方法都会被调用,并且将数据库初始化策略设置为DropCreateDatabaseIfModelChanges...AppConnection") { Database.SetInitializer(null); } 2、填充种子数据 到目前为止,无论我们选择哪种策略初始化数据库,生成的数据库都是一个空的数据库...此外,开发阶段可能想以admin的资格为其填充一些数据,或者为了测试应用在特定的场景中表现如何,想要伪造一些数据。...这里值得注意的是我们并没有调用DbContext.SaveChanges()方法,因为它会在基类中自动调用。

    1.2K20

    【初学者指南】在ASP.NET MVC 5中创建GridView

    在模板中选择 MVC,如果编写了应用的单元测试,请先做检查,并点击 OK。 我们的工程都是用基本的功能创建的。现在,我们开始创建数据库上下文类,这个类将会被 Data Access 实体框架使用。...我们将在数据库上下文中为 Asset 表添加一个属性,这个属性将会成为 Asset 表的实体框架表示,用它来创建脚本。...return new ApplicationDbContext(); } } 以上是 ASP.NET identity 2.0 的默认实体框架设置,我们通过为 Asset 表添加新的 DbSet...现在,在控制器文件夹中添加一个空的名为 AssetController 的控制器,这个控制器件将用于所有 Asset 的相关工作。...HTML 实现渲染的代码,请为检索行为创建一个空模板(没有模型)的视图,然后在其中添加如下代码: @model IEnumerable <div

    6.2K90

    【源码解读(一)】EFCORE源码解读之创建DBContext查询拦截

    在下面的代码,刚开始判断了如果DBContext的生命周期是单例,要将Option的生命周期也设置为单例,如果不设置为单例,就会出现错误,这个错误在之前讲解IOC的文章中,我记得也提到过,接下来判断设置...Option的委托是否为null,如果不为null,那DBContext的构造函数是必须要有一个参数,所以下面调用了一个方法CheckContextConstructors。...,如果说这个Provider有啥作用,哈哈哈哈,我认为他就是创建Options的时候需要用,然后给一个有东西的不为空的CoreOptionsExtension,这个方法,实际上我觉得微软设置为internal...DbSet ContactHeadImgUrls { get; set; } public virtual DbSet...{ get; set; } public virtual DbSet OpLogs { get; set; } public virtual DbSet

    93220

    简介

    “TransactionLogs”的DbSet 整个支付过程中(无论是支付成功还是出现异常),均会记录交易日志。...需要在DbContext中添加的完整代码如下所示: public DbSet TransactionLogs { get; set; } 注册回调逻辑 我们需要实现“IPaymentCallbackAction...自动记录交易日志以及进行相关逻辑处理 自定义数据依赖交易日志进行存储,而不依赖支付渠道,因此支持无业务参数的支付渠道,也支持存储更多自定义数据 老Abp集成教程 如果使用Abp相关模块,则使用起来比较简单,具体您可以参考相关单元测试的编写...”的DbSet 整个支付过程中(无论是支付成功还是出现异常),均会记录交易日志。...需要在DbContext中添加的完整代码如下所示: public DbSet TransactionLogs { get; set; } 注册回调逻辑 我们需要实现“IPaymentCallbackAction

    48220

    CSharpEntityFramework与CodeFirst实践

    BookDbDemo : DbContext { //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config) //使用“BookDbDemo...正如生成的DbContext所说:“为您要在模型中包含的每种实体类型都添加 DbSet。”...,我们在该类中添加如下的DbSet属性,并将注释删除,更加直观的看一看当前的结构: public class BookDbDemo : DbContext { public BookDbDemo...换句话说,继承了DbContext的类就对应了某一个数据库,其连接属性由配置文件中的连接配置决定,并在DbContext中设置进去(基类构造函数设置),这个DbContext中的所有DbSet就对应到数据库中的表...之后我们再次使用update-database命令将变更更新到数据库中,得到当前的数据库内容: 此时我们将book表中填充一些数据: 然后,我们将DbContext中的DbSet属性删除,再次进行迁移

    28310

    Entity Framework 4.1 Code-First 学习笔记

    { public DbSet Orders { get; set; } public DbSet OrderDetails { get; set; }...context 必须满足下面的要求: 派生自 System.Data.Entity.DbContext 对于你希望使用的每一个实体集定义一个属性 每一个属性的类型是 System.Data.Entity.DbSet...Required] public DateTime TransactionDate { get; set; } } 在上面的这段代码中,我们强制了OrderNumber为主键列,且为自增;OrderTitle为不能为空且最大长度为...即使复杂类型的所有属性都是可空的,你也不能将整个复杂类型的对象设为 null, 例如,在这种情况下,即使街道的名称和街道的号码不是必填的,也不能有一个住宅的地址为 null,需要创建一个所有属性都是 null...DbSet.SqlQuery:这个方法返回的实体将会被 EF 跟踪修改,所以,如果你在这些返回的实体上做了修改,当 DbContext.SaveChanges 被调用的时候,将会被处理。

    1.6K10

    Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装

    自动记录客户端信息以及自动异常处理和记录 仅需编写一次回调逻辑,即可支持多个支付渠道 业务参数支持更大长度(500) 开始使用 如果使用Abp相关模块,则使用起来比较简单,具体您可以参考相关单元测试的编写...下面以通联支付为例,我们需要在工程中引用此包: ?...添加模块依赖 在对应工程的Abp的模块(AbpModule)中,添加对“AbpAllinpayModule”的依赖,如: [DependsOn(typeof(AbpAllinpayModule))] 在DbContext...中添加名为“TransactionLogs”的DbSet 整个支付过程中(无论是支付成功还是出现异常),均会记录交易日志。...需要在DbContext中添加的完整代码如下所示: public DbSet TransactionLogs { get; set; } 注册回调逻辑 我们需要实现

    49740
    领券