EFCore
文章平均质量分 51
Mudrock__
这个作者很懒,什么都没留下…
展开
-
EFCore_一对一、一对多、多对多
关系配置在任意一端均可,实体对应的表中不存储外键(无需,也无法调用HasForeignKey()),外键存储在额外生成的中间表中,可通过UsingEntity("xxx")或UsingEntity(t=>t.ToTable("xxx"))来指定中间表名。以"教师"实体为例,其对应表为"Teacher"。答:通常单向导航属性出现在一对一 / 一对多的情况下(多对多的情况下外键储存在中间表),所以将关系配置在单向导航属性所在的实体类的配置类中,并将WithOne() / WithMany()置空即可。原创 2024-05-31 15:49:26 · 131 阅读 · 0 评论 -
EFCore_增删改查
3-ExecuteXxx()函数执行批量操作时,是实际上的批量操作。此外,区别于XxxRange(),无需将数据加载至内存(无查询操作,仅生成一条SQL)2-XxxRange()函数实际上是单个操作的循环,并不是真正意义上的批量操作。函数将实例更新至DB(实例可以是通过查询获得的,也可以是新建的)实现(第一个参数为被修改的表字段,第二个参数为修改值)方式:先查询(通过对DbSet执行Linq),再修改。EFCore7.0+时,删除(单个或批量)可通过。EFCore7.0+时,修改(单个或批量)可通过。原创 2024-05-20 15:54:37 · 207 阅读 · 0 评论 -
EFCore_获取C#代码的SQL命令
1. 添加依赖:Microsoft.Extensions.Logging.Console(此处以输出至控制台为例)在...DbContext.cs中的OnConfiguring()函数中添加对SimpleLog的应用。3. 在...DbContext.cs中的OnConfiguring()函数中添加对日志工厂的应用。注:message即为日志信息,其包括但不限于SQL信息。2. 在...DbContext.cs中创建日志工厂。注:该方式仅可获取查询语句的SQL。原创 2024-05-20 15:41:47 · 195 阅读 · 0 评论 -
EFCore_创建项目
配置类实现IEntityTypeConfiguration<>接口,可在其中对表进行详细设置,常用可设置项详见代码注释(若不创建实体类配置类,则会采用默认配置,详见本节文末)添加该依赖时可不添加Microsoft.EntityFrameworkCore,该依赖会捆绑添加。Oracle官方也提供MySQL依赖,但是跟新速度极慢。add-migration xxx(此次migration的代号)3.默认将"Id"或"实体类名+Id"属性对应的表字段设置为主键。1.默认将实体类属性名作为表字段名。原创 2024-05-14 16:56:21 · 286 阅读 · 0 评论 -
EFCore_Migration常用命令
script-migration 代号X 代号Y 生成从代号X版本至代号Y版本的SQL代码(代码未执行)add-migration 代号(此次Migration的代号) 添加迁移。remove-migration 移除最近的迁移文件(需要该文件未被执行)update-database 代号 迁移至代号版本(迁移文件不变)script-migration 生成迁移的SQL代码(代码未执行)update-database 执行最新迁移文件的Up函数。原创 2024-05-14 16:54:10 · 114 阅读 · 0 评论