Hi support and @bunyamin,
https://community.abp.io/posts/using-devextreme-angular-components-with-the-abp-framework-x5nyvj3i
In this article, we received data from a service that lists users. It can easily list 10 users or 100 users. For the listing I want to ask here, how can we implement the skip take infrastructure in the abp framework infrastructure on the angular side, using dxDatagrid.
How to enabled Health Check? I dont find doc on abp.
https://volosoft.com/Blog/Using-Health-Checks-in-ASP.NET-Boilerplate
Thanks @liangshiwei.
Hi @liangshiwei,
It would be nice if you could share an example.
Hi @shobhit , According to the blog below, I was able to integrate Azure AD into my project. https://community.abp.io/articles/how-to-setup-azure-active-directory-and-integrate-abp-angular-application-lyk87w5l
Thanks @liangshiwei. But problem not solved. https://support.abp.io/QA/Questions/2090/How-to-clear-cache-for-features#answer-f36c97e0-8c78-c2ca-8362-3a000f923d93
I tried the middleware in the link above
Hi support, when we assign a new role to the user, we could not gain the properties of this role without logging out and logging in When we do F5 it doesn't work either.
We kept the user's token duration long.
Hi support, When I create a migration with Abp Suite, it creates the associated data as OnCascade. How can you set it as NoAction by default? When you do OnCascade, when the master data is deleted, it also deletes the child data attached to it. It should not be like this. The NoAction operation should be added to the code generator by default.
Code Example:
//Built with Abp Suite
builder.Entity<DeviceResult>(b =>
{
b.ToTable("DeviceResults", AbpViewConsts.GetSchemaName("Laboratory.DeviceResults"));
b.ConfigureByConvention();
b.Property(x => x.TenantId).HasColumnName(nameof(DeviceResult.TenantId));
b.Property(x => x.Ip).HasColumnName(nameof(DeviceResult.Ip)).HasMaxLength(DeviceResultConsts.IpMaxLength);
b.Property(x => x.Result).HasColumnName(nameof(DeviceResult.Result)).IsRequired();
b.Property(x => x.Description).HasColumnName(nameof(DeviceResult.Description)).HasMaxLength(DeviceResultConsts.DescriptionMaxLength);
b.Property(x => x.UserName).HasColumnName(nameof(DeviceResult.UserName)).HasMaxLength(DeviceResultConsts.UserNameMaxLength);
b.Property(x => x.EntryDate).HasColumnName(nameof(DeviceResult.EntryDate)).IsRequired();
b.Property(x => x.Id1).HasColumnName(nameof(DeviceResult.Id1)).HasMaxLength(DeviceResultConsts.Id1MaxLength);
b.Property(x => x.Id2).HasColumnName(nameof(DeviceResult.Id2)).HasMaxLength(DeviceResultConsts.Id2MaxLength);
b.Property(x => x.Id3).HasColumnName(nameof(DeviceResult.Id3)).HasMaxLength(DeviceResultConsts.Id3MaxLength);
b.HasOne<DeviceDefination>().WithMany().IsRequired().HasForeignKey(x => x.DeviceDefinationId);
});
In the above example, when you try to delete DeviceDefination due to OnCascade feature, it also deletes deviceResult information.
b.HasOne<DeviceDefination>().WithMany().IsRequired().HasForeignKey(x => x.DeviceDefinationId).OnDelete(DeleteBehavior.NoAction);
//When creating data associated with the Suite, the .OnDelete(DeleteBehavior.NoAction) property should be added by default.