Open Closed

abp suite 8.0 如何在生成实体时,使用1:N的关系,生成导航到 IdentityUser的属性 #6414


User avatar
0
829098@qq.com created
  • ABP Framework version: v8.0
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

您好,我想在生成某个实体时,能有一个属性是用户,能下拉选择用户。 目前使用AbpSuite生成时,会出现报错,请问应该如何操作。


15 Answer(s)
  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    Hi,

    这是一个Suite的BUG, 你可以尝试取消勾选 Excel export, 然后应该会工作. 我们会修复这个问题,谢谢

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    你的问题数量已返还

  • User Avatar
    0
    829098@qq.com created

    实体是子对象,没有excel 导出的选项了,abp suite 生成代码,仍会有同样的报错。

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    我无法复现这个问题,你在项目目录运行 dotnet build 命令会得到什么错误? 另外你可以分享完整的复现步骤吗,谢谢

  • User Avatar
    0
    829098@qq.com created

    生成的代码编译会报错,少生成了 这行代码 using Volo.Abp.Identity; using Abp.Volo.Identity; 这行是生成的代码,正确的应该是 using Volo.Abp.Identity; 这里的命名空间错了。

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    可以分享一下完整的复现步骤吗 谢谢

  • User Avatar
    0
    829098@qq.com created

    可以分享一下完整的复现步骤吗 谢谢

    1、您把AbpSuite升级到最新 abp suite update --p 2、然后您生成一个 Master 实体(不勾选 excel export选项) 3、编译代码,没问题 4、abp suite 生成一个Child 实体(导航属性到 IdentityUser) 5、生成代码的过程中,就会出现报错了 6、打开VS2022编译代码,会报错 生成的 using Abp.Volo.Identity 这行代码是错误的,正确的是 using Volo.Abp.Identity

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    我无法复现这个问题

    你可以将.suite中的实体json文件分享给我吗,我在本地试一下。 shiwei.liang@volosoft.com

  • User Avatar
    0
    829098@qq.com created

    我测试了下,没有枚举字段的情况下可以生成,可能是枚举的原因。 我在Domain.Shared项目,添加了枚举类 public enum ProjectTaskPriority { 重要且紧急 = 1, 不重要紧急 = 2, 重要不紧急 = 3, 不重要不紧急 = 4 } 然后在Suite创建实体的属性时,指定类型为 Enum,并且选中 ProjectTaskPriority.cs 文件 生成代码就会报错了。

  • User Avatar
    0
    829098@qq.com created

  • User Avatar
    0
    829098@qq.com created

  • User Avatar
    0
    829098@qq.com created

    abp suite 生成的代码, 把 Enum.GetValues 改为 System.Enum.GetValues 应该就可以正常编译了

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    abp suite 生成的代码, 把 Enum.GetValues 改为 System.Enum.GetValues 应该就可以正常编译了

    这里已经有 using system了。 可能是命名空间冲突,你可以把你的文件夹改成 Domain/Enums, 并且更新一下枚举类的命名空间

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    不过也有一个别的问题,

    你可以暂时使用 ProjectManager 做为枚举类的命名空间

  • User Avatar
    0
    829098@qq.com created

    多谢,问题已解决,看来要规避一些关键字。

Made with ❤️ on ABP v9.1.0-preview. Updated on December 05, 2024, 12:19