Activities of "EngincanV"

Hi @consultant.ahmet.ulusoy, we have added a new code template file called ApplicationMapperlyMapper_Usings.txt to support our new Mapperly mapping code generations with v10.0.0-rc.1. So, the Volo.Abp.Commercial.SuiteTemplates NuGet package version on your *Domain project should be v10.0.0-rc.1+. And, from the error message, as specified, it seems it's version seems lower than this version.

So, can you please confirm that the relevant NuGet package version is indeed v10.0.0-rc.1+ and you have rebuilt your solution?


If you confirm this I can help you further, and as a next step, I can provide you its content and we can add it to your local folder to suprass the error like the file is already exists in your project. (This is a quick workaround, but without needing that it should work as expected. After this workaround, we may need to do additional fixes on your setup, so waiting for your confirmation...)

Best regards.

Hi @chrisalves,

Thanks for the detailed explainations! To answer your questions directly:

This is the current default behavior of ABP Suite. When a file/image property is generated, the upload is triggered immediately upon file selection before the Create action is called. This is by design in the current Suite templates, and there is no built-in option or template switch to defer the upload to the Save step.

Regarding cleanup of orphaned files: there is currently no default mechanism in ABP Suite to handle this, and we don't have a tracked issue to support one of these options natively at the Suite level. The handling of this scenario is left to you as the developer.

That said, here are the two approaches I'd recommend:

Periodic Background Worker (recommended if you want to stay close to Suite-generated code)

Create a background worker that periodically:

  • Queries all existing file/image IDs from your database (e.g., your ProductImage IDs stored on the entity).
  • Lists the blobs in the relevant Blob Storing container.
  • Identifies blobs that have no corresponding entity record (orphaned blobs).
  • Deletes the unused ones using IBlobContainer.DeleteAsync(blobName).

ABP's Blob Storing API supports DeleteAsync safely, it won't throw if a blob doesn't exist. This approach requires no changes to the Suite-generated UI or application service code.

Manually adjust the upload logic:

You can modify the generated Blazor component so that the file is held in memory on selection (no server call), and only uploaded when the user actually clicks Save. This gives you zero orphan risk, but does require you to customize the generated code, which means you'll need to manage that customization across future regenerations.

Since you mentioned preferring to stay close to the Suite-generated code, Option 1 is the more practical path for your case.


Hope this helps clarify the situation.

Best Regards.

[Prinay] said: Hi EngincanV,

Your recommendation worked perfectly. I have renamed the entity to not match the project name and it generated perfectly.

I will note this going forward. The DownloadTokenResultDto error is also gone. I suspect it was the conflicting namespace too as you mentioned.

Thanks for the assistance.

Hi @Prinay, I'm happy to help.

Best regards.

[Prinay] said: Additional context.

If I create related entities with Create user interfaces checked I run into even more issues.

Again, I have made 0 customisations and this is just pure generation at this point.

Hi Prinay,

It seems the error is caused by the project name and entity name being the same. To help us reproduce the issue, could you share your solution via email to support@abp.io with your ticket number? If that's not possible, please let me know and I'll try to reproduce it using the configurations you've provided above.

Also, could you confirm whether you have a DTO class called DownloadTokenResultDto and that its namespace is different from Payments.Shared?

Best regards.

Hello again, we have fixed the problem and it's under review now. Once, it's reviewed and we release a new version for v10.1, it will be available:

I refunded your ticket and since the work is under review and planned to be included in the next patch release, I close the question.

Best regards.

Hi @improwise, I'll create an issue and fix it asap. (Your ticket is refunded)

Best regards.

Hi @granade, please ignore the response from the AI bot.

As you stated, the only difference between the generated code and your existing mapping code is the trailing “s” in the class name. If, in your existing code, you rename the class names and add a trailing “s” to them, ABP Suite should recognize that the mapping already exists and should not add a new mapper class.

ABP Suite performs a regular expression (regex) check on the class name and the inherited class structure; currently, it does not find a match due to the missing “s” at the end of the mapping class name.

[hassan.abuhelweh] said: Thanks for the update looking forward to it

Hi, it should be fixed with v10.0.3. If you want you can update your solution to v10.0.3 (and also ABP Suite) and give it a try.

Best regards.

[improwise] said: Actually, I thought so to but turns out they properties are actually included all the way, at least with the Angular UI we are using. All you need to do is to fix the last step to actually have them show up. This is at least true for the list (GetList), have not looked if they are included for Get(xxx) as well.

    <ngx-datatable-column name="{{ '::CreationTime' | abpLocalization }}" prop="measurementAssignment.creationTime" > 
      <ng-template let-row="row" ngx-datatable-cell-template> 
        {{ row.xxx?.creationTime | shortDateTime }} 
      </ng-template> 
    </ngx-datatable-column> 

I dont know the Angular UI, but will share this feedback with our Angular team, and let you know.

Hi, currently ABP Suite does not automatically include base-class properties (auditing fields, and other fields) into the generated DTOs/pages, and to be honest we haven't consider this previous and don't have an open issue for that. I'll create an issue to consider that and we'll try to prioritize it. (Adding an option for that seems valuable, so I will discuss this with the team and we will consider to implement for the near feature)

Best regards.

Showing 1 to 10 of 1399 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on September 09, 2026, 11:56
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.