efcore迁移命令移除外键(代码片段)

lludcmmcdull lludcmmcdull     2022-12-10     499

关键词:

 

继承 MigrationsModelDiffer,重载 GetDifferences 并移除 ForeignKeys

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "EF1001:Internal EF Core API usage.", Justification = "<挂起>")]
    public class MigrationsModelDifferWithoutForeignKey : MigrationsModelDiffer
    
        public MigrationsModelDifferWithoutForeignKey
            ([NotNull] IRelationalTypeMappingSource typeMappingSource,
            [NotNull] IMigrationsAnnotationProvider migrationsAnnotations,
            [NotNull] IChangeDetector changeDetector,
            [NotNull] IUpdateAdapterFactory updateAdapterFactory,
            [NotNull] CommandBatchPreparerDependencies commandBatchPreparerDependencies)
            : base(typeMappingSource, migrationsAnnotations, changeDetector, updateAdapterFactory, commandBatchPreparerDependencies)
        
        

        public override IReadOnlyList<MigrationOperation> GetDifferences(IModel source, IModel target)
        
            var operations = base.GetDifferences(source, target);

            foreach (var operation in operations.OfType<CreateTableOperation>())
                operation.ForeignKeys?.Clear();

            return operations;
        
    

 

使用时,替换服务即可:

  services.AddDbContext<MyDbContext>(options =>
  
    options.UseSqlServer(Default);
    options.ReplaceService<IMigrationsModelDiffer, MigrationsModelDifferWithoutForeignKey>();
  );

 

sql添加和删​​除外键(代码片段)

查看详情

efcore从tph迁移到tpt(代码片段)

EFCore从TPH迁移到TPT Intro#EFCore支持多种方式处理具有继承关系的表,现在支持TPH、TPC(EFCore7)、TPT,具体的实现方式可以参考官方文档和这篇文章。大致总结一下不同的方式的区别:TPH:所有的类型都放在一张表中,使用discr... 查看详情

efcore小技巧:迁移已经应用到数据库,如何进行迁移回退操作?(代码片段)

场景描述:项目中存在两个迁移 Teacher 和 TeachingPlan ,TeachingPlan 在 Teacher 之后创建,并且已经执行 dotnetefdatabaseupdate 将新迁移应用到数据库。此时,因为实体修改,我们希望删除 TeachingPlan 迁移然后创... 查看详情

.net下极限生产力之efcore分表分库全自动化迁移codefirst(代码片段)

...了如何兼容WTM框架后也有不少小伙伴来问我如何兼容如何迁移等问题,经过这么多框架的兼容我自己也认识到了一些问题,譬如在ShardingCore初始化前使用(毕竟efcore)的初始化是在依赖注入的时候不需要手动调用初始化&# 查看详情

efcore数据迁移

PackageReference是nuget包 DotNetCliToolReference 是dotnet 命令行工具 EFCore用到<DotNetCliToolReference Include=“Microsoft.EntityFrameworkCore.Tools.DotNet” Version=“1.0.0”  查看详情

text20180320ページ移行时fade等で迁移(代码片段)

查看详情

entityframeworkcore在独立类库下执行迁移操作

...引用第二个和第三个库是必须要添加的,如果你不用命令迁移除外。。。。。2.打开程序包管理控制台Add-Migrationintidb然后就会发现报错了Nodatabasep 查看详情

blazorwasm+duende.identityserver+efcore认证授权企业级实战(代码片段)

...务与配置管道2.3.3配置测试数据2.3.4数据初始化2.3.5数据库迁移3.创建WebApi应用3.1安装NuGet包3.2配置`Startup.cs&# 查看详情

blazorwasm+duende.identityserver+efcore认证授权企业级实战(代码片段)

...务与配置管道2.3.3配置测试数据2.3.4数据初始化2.3.5数据库迁移3.创建WebApi应用3.1安装NuGet包3.2配置`Startup.cs&# 查看详情

9.efcore数据库索引与备用键约束(代码片段)

一、设置索引protectedoverridevoidOnModelCreating(ModelBuildermodelBuilder)modelBuilder.Entity<Blog>().HasIndex(b=>b.Url);//Url字段索引modelBuilder.Entity<Blog>().HasIndex(b=>b.Url).IsUnique();//Url字段的唯一索引modelBuilder.Entity<Blog>().HasIndex(b=>b.Url... 查看详情

abpvnext4.4:统一efcore的dbcontext/移除efcoremigrations项目(代码片段)

Abpvnext4.4出现了一个比较重大的变更:在Startuptemplate中移除了EFCoreMigrations项目,本文翻译自community.abp.io/articl由于本文发布的时候Abpvnext的版本还没有到4.4,所以本文演示了如何从4.4以前的版本移除EntityFrameworkCore.DbMigr... 查看详情

.net使用一行命令轻松生成efcore项目框架(代码片段)

dotnetef是EntityFrameworkCore(EFCore)的一个命令行工具,用于管理EFCore应用程序的数据库和代码。除了提供管理数据库的命令之外,dotnetef还可以生成和管理实体和上下文代码。本文将介绍如何使用dotnetef动态生成代码。一、环境准... 查看详情

efcore开发模式之codefirst

...体类代码  2.DbContext派生类代码  一、创建迁移并更新数据库1.通过命令行方式,在项目根目录执行命令:dotnetefmigrationsaddTest,创建名为Test的迁移任务;  命令执行成功后,在项目中会自动产生一个Migrat 查看详情

efcore生成数据库(代码片段)

...nbsp;1、运行cmd,切换到打开项目所在文件夹,输入下面的命令dotnetefmigrationsaddInitial建立并初始化数据库dotnetefdatabaseupdate更新数据库dotnetefmigrationsaddxxxx更新模型字段后需要执行此命令通知vs重新编译表变动xxxx为变更的任意字段名... 查看详情

markdownrakedb迁移命令(代码片段)

查看详情

shdjango迁移命令(代码片段)

查看详情

asp.netcore使用efcore(代码片段)

...F共享库Microsoft.EntityFrameworkCore.Tools:EF的NuGet包管理器命令工具 Mysql需要安装:MySql.Data.EntityFrameworkCore-PrePomelo.EntityFrameworkCore.MySqlMicrosoft.EntityFrameworkCore.ToolsMicrosoft.VisualStudio.Web.CodeGeneration.Design二、创建实体类publicclassUser/... 查看详情

django数据迁移命令(代码片段)

D:pythonspacendjanoguest>pythonmanage.pymakemigrationssignMigrationsfor‘sign‘:signmigrations 查看详情