首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将abp表名更新为MySql约定(如"abp_user_role“)

如何将abp表名更新为MySql约定(如"abp_user_role“)
EN

Stack Overflow用户
提问于 2019-01-08 05:06:56
回答 1查看 91关注 0票数 0

我正在尝试将ABP模板项目的DB表名转换为MySql约定,比如‘abp_user_ AbpTenantBase’,但是AbpRoleBase、AbpTenantBase、AbpUserBase等都失败了。

以下是我在DB上下文中的代码:

代码语言:javascript
复制
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        UpdateAbpTableNamesForMySqlConvention(modelBuilder);

        modelBuilder.Entity<TestEntity>(entity =>
        {
            entity.HasKey(e => new { e.Id });

            entity.ToTable("test_entity");
        });

    }

    private void UpdateAbpTableNamesForMySqlConvention(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<AuditLog>(e => { e.ToTable("abp_audit_log"); });
        modelBuilder.Entity<BackgroundJobInfo>(e => { e.ToTable("abp_background_job"); });
        modelBuilder.Entity<Edition>(e => { e.ToTable("abp_edition"); });
        modelBuilder.Entity<EntityChange>(e => { e.ToTable("abp_entity_change"); });
        modelBuilder.Entity<EntityChangeSet>(e => { e.ToTable("abp_entity_change_set"); });
        modelBuilder.Entity<EntityPropertyChange>(e => { e.ToTable("abp_entity_property_change"); });
        modelBuilder.Entity<FeatureSetting>(e => { e.ToTable("abp_feature"); });
        modelBuilder.Entity<ApplicationLanguage>(e => { e.ToTable("abp_language"); });
        modelBuilder.Entity<ApplicationLanguageText>(e => { e.ToTable("abp_language_text"); });
        modelBuilder.Entity<NotificationInfo>(e => { e.ToTable("abp_notification"); });
        modelBuilder.Entity<NotificationSubscriptionInfo>(e => { e.ToTable("abp_notification_subscription"); });
        modelBuilder.Entity<OrganizationUnit>(e => e.ToTable("abp_organization_unit"));
        modelBuilder.Entity<PermissionSetting>(e => e.ToTable("abp_permission_setting"));
        modelBuilder.Entity<RoleClaim>(e => e.ToTable("abp_role_claim"));
        //modelBuilder.Entity<AbpRoleBase>(e => e.ToTable("abp_role"));
        modelBuilder.Entity<Setting>(e => e.ToTable("abp_setting"));
        modelBuilder.Entity<TenantNotificationInfo>(e => e.ToTable("abp_tenant_notification"));
        //modelBuilder.Entity<AbpTenantBase>(e => e.ToTable("abp_tenant"));
        modelBuilder.Entity<UserAccount>(e => e.ToTable("abp_user_account"));
        modelBuilder.Entity<UserClaim>(e => e.ToTable("abp_user_claim"));
        modelBuilder.Entity<UserLoginAttempt>(e => e.ToTable("abp_user_login_attempt"));
        modelBuilder.Entity<UserLogin>(e => e.ToTable("abp_user_login"));
        modelBuilder.Entity<UserNotificationInfo>(e => e.ToTable("abp_user_notification"));
        modelBuilder.Entity<UserOrganizationUnit>(e => e.ToTable("abp_user_organization_unit"));
        modelBuilder.Entity<UserRole>(e => e.ToTable("abp_user_role"));
        //modelBuilder.Entity<AbpUserBase>(e => e.ToTable("abp_user"));
        modelBuilder.Entity<UserToken>(e => e.ToTable("abp_user_token"));

}

Got错误:不能为实体类型‘承租者’指定过滤器表达式'e => (Not(e,ISoftDelete).IsDeleted) OrElse (Got(e,ISoftDelete).IsDeleted != 。筛选器只能应用于层次结构中的根实体类型。

EN

回答 1

Stack Overflow用户

发布于 2019-01-08 09:32:05

正确之一:

代码语言:javascript
复制
   private void UpdateAbpTableNamesForMySqlConvention(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<AuditLog>(e => { e.ToTable("abp_audit_log"); });
        modelBuilder.Entity<BackgroundJobInfo>(e => { e.ToTable("abp_background_job"); });
        modelBuilder.Entity<Edition>(e => { e.ToTable("abp_edition"); });
        modelBuilder.Entity<EntityChange>(e => { e.ToTable("abp_entity_change"); });
        modelBuilder.Entity<EntityChangeSet>(e => { e.ToTable("abp_entity_change_set"); });
        modelBuilder.Entity<EntityPropertyChange>(e => { e.ToTable("abp_entity_property_change"); });
        modelBuilder.Entity<FeatureSetting>(e => { e.ToTable("abp_feature"); });
        modelBuilder.Entity<ApplicationLanguage>(e => { e.ToTable("abp_language"); });
        modelBuilder.Entity<ApplicationLanguageText>(e => { e.ToTable("abp_language_text"); });
        modelBuilder.Entity<NotificationInfo>(e => { e.ToTable("abp_notification"); });
        modelBuilder.Entity<NotificationSubscriptionInfo>(e => { e.ToTable("abp_notification_subscription"); });
        modelBuilder.Entity<OrganizationUnit>(e => e.ToTable("abp_organization_unit"));
        modelBuilder.Entity<PermissionSetting>(e => e.ToTable("abp_permission_setting"));
        modelBuilder.Entity<RoleClaim>(e => e.ToTable("abp_role_claim"));
        modelBuilder.Entity<Role>(e => e.ToTable("abp_role"));
        modelBuilder.Entity<Setting>(e => e.ToTable("abp_setting"));
        modelBuilder.Entity<TenantNotificationInfo>(e => e.ToTable("abp_tenant_notification"));
        modelBuilder.Entity<Tenant>(e => e.ToTable("abp_tenant"));
        modelBuilder.Entity<UserAccount>(e => e.ToTable("abp_user_account"));
        modelBuilder.Entity<UserClaim>(e => e.ToTable("abp_user_claim"));
        modelBuilder.Entity<UserLoginAttempt>(e => e.ToTable("abp_user_login_attempt"));
        modelBuilder.Entity<UserLogin>(e => e.ToTable("abp_user_login"));
        modelBuilder.Entity<UserNotificationInfo>(e => e.ToTable("abp_user_notification"));
        modelBuilder.Entity<UserOrganizationUnit>(e => e.ToTable("abp_user_organization_unit"));
        modelBuilder.Entity<UserRole>(e => e.ToTable("abp_user_role"));
        modelBuilder.Entity<User>(e => e.ToTable("abp_user"));
        modelBuilder.Entity<UserToken>(e => e.ToTable("abp_user_token"));
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54085515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档