首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C# 数据操作系列 - 9. EF Core 完结篇

    EF Core的异步操作 正如这小节题目所言,EF Core是支持异步操作的,但实际可用集中在SaveChanges和异步查询这两个方法上。...两种方法都支持传入一个取消令牌(这部分内容需要等后期的《C# 异步编程系列》里介绍)。 返回一个Task,然后按照Task进行执行就行。...using关键字的机制不会因为中途返回而不执行 context.Dispose(),也不会因为中间被抛出异常不执行。...Npgsql.EntityFrameworkCore.PostgreSQL postgresql Npgsql 开发团队 Pomelo.EntityFrameworkCore.MySql MySQL、MariaDB...现在给大家推荐一个插件: Z.EntityFramework.Plus.EFCore 这个插件可以扩展DbContext的功能,使其支持对查询结果的操作: var ctx = new DbContext

    1.2K10

    Entity Framework——并发策略

    ,然后调用DbEntityEntry.GetDatabaseValues,在数据库中查找这条记录,若能够找到这条记录,返回当前值的属性值集合。...,还可以观察到调用DbEntityEntry.GetDatabaseValues()、DbEntityEntry.OriginalValues、DbEntityEntry.CurrentValues的返回值...未配置并发检测生成的UPDATE 语句: UPDATE `Users` SET `Email`=@gp1 WHERE `Id` = 1 各个变量的值 【正常线程2@163.com】数据库中原值:2@163...EntityFramework.dll 中发生 “System.Data.Entity.Core.OptimisticConcurrencyException”类型的第一次机会异常在 EntityFramework.dll...”类型的第一次机会异常在 EntityFramework.dll 中发生 【正常线程3@163.com】数据库中原值:3@163.com 【正常线程3@163.com】客户端传值:3@163.com 【

    1.1K80

    使用CodeFirst创建并更新数据库

    否则在生成数据表时会报错:"EntityType 'Blog' has no key defined....Author() { Name = "xfh" }); 4 db.SaveChanges(); 5 } 运行程序,我们会发现EF已经为我们建立了数据库,数据库名称为EF(在配置文件中指定)以及数据表... Blogs { set; get; } ,删除数据库重新生成就会发现不在生成T_Blogs表。...在生成T_Authors表的同时,会生成一张名为_migrationhistory表,这张表用于记录我们对于数据库的更新日志,表中的MigrationId字段的值是我们每次执行Migration时所生成的文件名...如果尚未创建数据库,则不会将此 InitialCreate 迁移添加到项目中。而是,首次调用 Add-Migration 时,用于创建这些表的代码将为新迁移搭建基架。

    2.7K40

    EF简介

    ,右键模型,点击属性-代码生成策略-改为默认值,就可以了,但是这会与(对应ef模块名.tt文件)文件里面的模型产生冲突. 4、系统会自动添加EntityFramework和System.Data.Entity...二、使用ef进行数据库的增删改差: ef实现增删改差的流程:(1)通过把实体的变化,转换成数据处理类(语句) (2)通过调用ADO.NET将处理类(语句)转换成sql语句(3)将sql语句插入到数据库中执行并返回结果...(4)ADO.NET将数据库结果返回给程序 通俗点说,就是ef帮助我们把实体的变化翻译成sql语句,然后调用底层的ADO.NET保存到数据库中去。...= new T_ConsultingList(); list1相当于一个新对象,你可以利用这个对象,来指定你要修改(或删除)的对应记录的id和修改的内容。...而不是用数据库映射回来的那条数据,如果你用映射回来的那条数据,但是你打算修改的那条数据的主键id却不是映射回来的那条数据的主键id,那么就会认为你要修改映射回来的那条数据的主键id,而主键是不允许修改的

    1.4K80

    基于EntityFramework 6 Code First实现多租户的一种思路

    一、前言 公司原本有一个“xx系统”,ORM使用EntityFramework,Code First模式。...这代码改动会非常大,之前的查询修改代码都需要增加外键筛选的逻辑。这显然不合理。 动态分库。每个企业注册时,为他生成一个独立的数据库,企业登录时切换到他对应的数据库。...这样就完全不用修改以前的业务代码,只需要考虑企业数据库切换的问题。 三、实现 那么EntityFramework Code First模式怎么实现动态分库的功能呢?...context.Staffs.AddOrUpdate(staff); context.SaveChanges(); } } } 关键的分库,建库,更新数据库代码在...企业登录后已经生成了对应的业务库 ? 数据正确添加读取: ? ? 五、总结: 以上关于EntityFramework分库的核心就是通过动态构建connectionString,来得到context。

    59330

    Asp.net+Vue2构建简单记账WebApp之二(使用ABP迅速搭建.Net后台)

    EntityFramework里面放数据访问对象及仓储, Application里面通常写服务给web和webapi调用 web,webapi就是项目的出口最终展现给第三方或者用户的地方 三、赶紧试试能用不...方法:post 参数:{CreatorUser:用户的名称或id标识,BillTypeId:方法1中返回数据的id,Money:记账金额,Des:描述,可不要} 返回:成功{ result =...id标识,Date:数据的时间,Type:‘数据类型0表示一年的数据,1表示一个月的数据根据’,SkipCount:跳过前多少数据用于分页} 返回 :正确 {"result":true,"data":...]} 4,删除账单数据: 路径:/bill/DeleteBill 方法:post 参数:{key:方法3中返回数据的id} 返回:成功{ result = true, data = "success...方法:get 参数:{User:用户的名称或id标识,Date:数据的时间,Type:‘数据类型0表示一年的数据,1表示一个月的数据根据’,GroupBy:分组依据 0,消费类型,1 月} 返回

    1.1K30

    ABP入门系列(2)——领域层创建实体

    一、首先来看看ABP体系结构 领域层就是业务层,是一个项目的核心,所有业务规则都应该在领域层实现。 实体(Entity): 实体代表业务领域的数据和操作,在实践中,通过用来映射成数据库表。...实体 1.在领域层创建Tasks文件夹,并创建Task实体类; 2.ABP中所有的实体类都继承自Entity,而Entity实现了IEntity接口;而IEntity接口是一个泛型接口,通过泛型指定主键Id...找到我们的基础服务层,即以EntityFramework结尾的项目中,找到DbContext类,添加以下代码 //TODO: Define an IDbSet for your Entities......打开程序包管理器控制台,默认项目选择Entityframework对应的项目后。执行Add-Migration Add_Task_Entity,创建迁移。...foreach (var task in _tasks) { _context.Tasks.Add(task); _context.SaveChanges

    95180

    初探领域驱动设计(2)Repository在DDD中的应用

    我们还没有具体的实现Repository,即使是在测试的时候我们使用的也是一个Mock。那么今天,我们就来实现一个EntityFramework的Repository。...我们要做的并不多,因为DbContext.SaveChanges它本身就是有事务的,所以我们只需要创建一个带有SaveChanges的接口就可以了。...应用层也有_userRepository,并且领域服务还给我返回了一个user的实体,那我是把它加到这个_userRepository中呢还是不加好呢?   ...Table作为IQueryable返回,那我们想怎么查就随意了。因为是IQueryable,所以也是只会返回我们所查询的内容,和直接用EF查询是一个道理。...当然有人也许会建议直接拿EF来用多好,其实我不建议这样去做,考虑到以后把EF换掉的可能性。并且我们加这样一个接口真的不会碍着我们什么事。

    1.5K60

    transactionscope mysql_c# – 嵌套的TransactionScope在测试中失败

    大家好,又见面了,我是你们的朋友全栈君。 我正在使用MSTest通过 MySQL Connector和使用EntityFramework 4.3对MysqL 5.5.19数据库运行一些自动化测试....(TransactionScopeOption.required)) { try { // … context.Desserts.Add(dessert); context.SaveChanges...(); var dessertId = dessert.Id; DoOtherDessertStuff(dessertId,dessertBizObject); transScope.Complete(...我的测试安排使这个DoOtherDessertStuff函数失败并抛出异常,所以调用transScope.Complete();不会发生,并且在退出AddDessert函数中的using块时会自动进行回滚...我在这里遇到的问题是,由于它使用MyTestInitialize函数中创建的环境事务范围,因此我的测试Assert调用不会发生,因为事务范围回滚发生了 – 至少这是我认为正在发生的事情.我验证了Transaction.Current.TransactionInformation.Statusis

    2.1K10

    一步步学习EF Core(2.事务与日志)

    前言 上节我们留了一个问题,为什么EF Core中,我们加载班级,数据并不会出来 其实答案很简单,~ 因为在EF Core1.1.2 中我们在EF6.0+中用到的的延迟加载功能并没有被加入,不过在EF...Core 2.0中,这个功能将回归 而且这个功能是否需要被加入进去,社区也在激烈的讨论当中,有兴趣的可以去看看: https://github.com/aspnet/EntityFramework/issues...context.ClassTable.Add(new ClassTable { ClassName = "BBBBB", ClassLevel = 2 }); _context.SaveChanges...Debug.WriteLine($"时间:{DateTime.Now.ToString("o")} 日志级别: {logLevel} {eventId.Id...感兴趣的朋友可以去了解一下,我之前的博文也有介绍: EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4) 好了,就说这么多.

    1.5K90

    hive metastore 3.0介绍

    不建议在生产中自动创建,而是改为运行 schematool。...强烈建议在生产中使用此设置。设置为 false 时:如果存储在 RDBMS 中的版本信息与 Metastore jar 的版本不匹配并允许自动模式迁移,则发出警告。...这不会安装表,它只会创建数据库用户和模式。 这在生产环境中可能不起作用,因为您可能没有创建用户和架构的权限。 您可能需要 DBA 为您执行此操作。...因此,除了 HiveServer2 之外,不建议在生产中使用嵌入式模式。 Metastore Server模式 要将 Metastore 作为服务运行,您必须首先使用 URL 对其进行配置。...有关可用选项,请参阅该实用程序的 -help 选项。 没有 stop-metastore 脚本。 您必须找到 Metastore 的进程 ID 并终止该进程。

    2K10

    CTO说了,谁在用select * 就走人!!

    对于在 RDBMS 查询中使用 SELECT *,我们大多数人都不会三思而后行,但也许我们应该这样做。今天这篇文章讨论下为什么。 1 为什么不? 为什么呢?...SELECT * 让我们来看看为什么不建议使用SELECT *,特别是在生产环境中。...通过限制返回的列,我们可以更好地利用在查询执行时消耗更少内存空间的索引。这是迄今为止限制SELECT语句中的列的最佳理由。更少的内存意味着更少的存储读取、更少的 CPU 周期和更快的查询。...例如,如果我们的应用程序是一个数据库设计工具(如MySQL和MariaDB的phpMyAdmin),我们可能应该一直带回所有列,并利用行限制和缓存来确保应用程序只带回它需要的内容....另一个(常见)异常是在开发和测试环境中,或者如果我们需要解决生产中的问题。有时使用SELECT *. 这些决定应基于我们可获得的最佳可用信息,并且仅在适当的情况下。

    29940

    Apache-fineract

    https://www.fineract.dev/ Fineract 是一个具有开放 API 的成熟平台,可为金融机构提供可靠、强大且价格实惠的核心银行解决方案,为全球 30 亿银行服务不足和无银行账户的人口提供服务...要求 Java >= 17 (Azul Zulu JVM 由我们在 GitHub Actions 上的 CI 进行测试) MariaDB 11.2 您可以在容器中运行所需版本的数据库服务器,而不必安装它...请注意,如果您使用独立的 JAR(它使用 Spring Boot 透明地嵌入 servlet 容器),则不需要安装 Tomcat 来开发 Fineract 或在生产中运行它。...重要提示:如果您使用 MySQL 或 MariaDB 最近(在发布 1.7.0 后),我们在 Fineract 中引入了改进的日期时间处理。...:2022-08-11 17:15 GMT+2 如果以前使用的 Fineract 实例没有以 UTC 运行(向后兼容),那么 MySQL/MariaDB 将错误地读取所有之前的日期。

    12710
    领券