Activities of "LW"

Hey, I'm desisingn an application module that depends on our core module entities. In the application module, I have entites that reference core module entities via Id reference. I'm trying create a solution where it would be easy and efficient to join data from core module entites to a query in the application module. The module is designed to be an integrated part of the system so dublicating data into that module is not the best solution. The entity extension system doesn't seem to be quite what I'm looking for either.

One way to achive this would be to use DbContext inheritance so the core module entites would be in use through the application module dbContext. However this is not possible at the moment because I ran into this problem: https://stackoverflow.com/questions/41829229/how-do-i-implement-dbcontext-inheritance-for-multiple-databases-in-ef7-net-co . The suggested solution would be to add the protected constructor with non generic options injected as parameter. This would have to be in the AbpDbContext however.

I'm wondering would be the suggested way to link dbContexts together or join data over multiple dbContexts?

Hi Albert, thank you for the answer. We tried it that way but the problem with that approach is that it's not easy to populate all the value object data to a grid showing parent entity's data. Going the other route and defining the value object's properties separaterly to the parent entity and then changing backend code to form a value object, also needs a lot of customization to the generated code. Either way having to change the code after generation ruins the maintainability of the entity (with suite). Thus we desided not to use Value Objects at this point and describe the data as separate properties inside the parent entity. Unfortunately this deficit undermines our domain model a bit :(

  • ABP Framework version: v4.3.1
  • UI type: Angula
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:

Is the generation going to support Value Objects at some point? What would be the suggested way to generate the entites and then form value object to the entites afterwards at this point? How would you deliver value object data through the API: as a separate dto object or with properties inside the entity's dto class?

Hi, I see and thank you for your answer. Since we are just starting the project, the DbContext.cs file is what comes out of the project generation and only the style changes were made to it. No entities were generated yet.

I also came up with another problem with the GRUD geneation: I generated the solution with a name "ABC". This ABC represents context of the whole solution. Inside this I whould like to change the projects' names (other that Host and DBMigrator) to better describe our core context so our project structure would look like this: ABC.DbMigrator ABC.HttpApi.Host ABC.IdentityServer ABC.CoreContextName.Application ABC.CoreContextName.Application.Contracts ABC.CoreContextName.Domain ABC.CoreContextName.Domain.Shared ... and so on After this chage the generation stopped working. What would be the suggested solution to this problem or is there any at the moment?

Hello, I narrowed this down to "Tabify" changes in the DbContext file located in EntityFrameworkCore-project. If I do indentation with spaces, the generation works. I can get the generation to go through if I indent the public "DbSet<AppUser> Users { get; set; }" line with spaces and other lines with tabs. Knowing this, we can work around this, but it would be interesting to know why this happens and what would be the correct way to handle this.

  • ABP Framework version: v4.3.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace: [11:12:39 ERR] ---------- RemoteServiceErrorInfo ---------- { "code": null, "message": "An internal error occurred during your request!", "details": null, "data": {}, "validationErrors": null }

[11:12:39 ERR] Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'startIndex') System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'startIndex') at System.Globalization.CompareInfo.IndexOf(String source, String value, Int32 startIndex, Int32 count, CompareOptions options) at System.String.IndexOf(String value, Int32 startIndex, Int32 count, StringComparison comparisonType) at System.String.IndexOf(String value, Int32 startIndex, StringComparison comparisonType) at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.GemUnTEg8C(String , String , String ) at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.SmPUPD5FVI(String , String , Boolean ) at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.ry8UalTMOS(String , String , Boolean , DatabaseProvider ) at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.yQaUMqY0OU(String , DatabaseProvider ) at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.REPUDgh9L9() at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.ExecuteAsync(CrudPageCommandOptions options) at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.CommandManager.ExecuteAllAsync(CrudPageCommandOptions options) at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.CrudPageGenerator.GenerateAsync(EntityModel entity, Solution solution) at Volo.Abp.Suite.Controllers.CrudPageGeneratorController.SaveAndGenerateEntityAsync(Guid solutionId, EntityModel entity) at lambda_method2068(Closure , Object ) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)

at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)


Hello, for some reason our code style changes to the backend code broke the CRUD page generation. I Checked the commit that broke it and it contained basically only indendation style changes. I don't understand how code style changes could affect the generation tool. I tried reverting some of the change that seemed most relevant to this with no effect. How could I try to solve this issue?
Showing 51 to 56 of 56 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11