Hi
I note the Chat module is not available for Blazor Server UI - last comment was 8 months ago that it was planned. Is it currently in the road map?
Thanks
Straight away, on every first run, I get exceptions. They vary, but this is one example:
Error: System.InvalidOperationException: ExecuteReader requires the command to have a transaction when the connection assigned to the command is in a pending local transaction. The Transaction property of the command has not been initialized. ... at Volo.Abp.LanguageManagement.EntityFrameworkCore.EfCoreLanguageTextRepository.GetList(String resourceName, String cultureName)
But I also get exceptions reporting the DataReader connection has not been closed, null reference exceptions, etc. If you Reload the page, it then works fine.
Error: System.NullReferenceException: Object reference not set to an instance of an object. at Volo.Abp.AspNetCore.Components.Web.LeptonTheme.Components.ApplicationLayout.MainHeader.MainHeader.xpWj9u1bVH()
Then navigate to an entity list page (e.g. Products), and on the first time I access it:
Error: System.InvalidOperationException: The ConnectionString property has not been initialized. at Microsoft.Data.SqlClient.SqlConnection.PermissionDemand() at Microsoft.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSourcretry, DbConnectionOptions userOptions) ...[snip] at Test52.Blazor.Pages.Products.GetNullableSupplierLookupAsync(String newValue) in C:\Users\wojt\source\repos\Tests\Test52\src\Test52.Blazor\Pages\Products.razor.cs:line 225 at Test52.Blazor.Pages.Products.OnInitializedAsync() in C:\Users\wojt\source\repos\Tests\Test52\src\Test52.Blazor\Pages\Products.razor.cs:line 65 at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync() at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
Again, reload the page and it works fine.
NOW, for even more errors, add a Category, add a Product, and then try adding a Category to a Product (i.e. use the 1 to many relationship):
Error: System.ObjectDisposedException: Cannot access a disposed context instance. A common cause of this error is disposing a context instance that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you are calling 'Dispose' on the context instance, or wrapping it in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances. Object name: 'Test52DbContext'.
The offending line in this case is in the ABP Suite-generated method SetCategoriesAsync
in ProductManager.cs:
var query = (await _categoryRepository.GetQueryableAsync()) .Where(x => categoryIds.Contains(x.Id)) .Select(x => x.Id);
Repo is here: https://github.com/wojtj/Test52
The ABP Suite template used to generate the Entity razor.cs file needs updating for the DataGrid changes in Blazorise 1.0. It currently generates:
private async Task OnDataGridReadAsync(DataGridReadDataEventArgs<SupplierDto> e) { CurrentSorting = e.Columns .Where(c => c.Direction != SortDirection.None) .Select(c => c.Field + (c.Direction == SortDirection.Descending ? " DESC" : "")) .JoinAsString(","); CurrentPage = e.Page; await GetSuppliersAsync(); await InvokeAsync(StateHasChanged); }
SortDirection
has replaced Direction
, and SortDirection.Default
has replaced SortDirection.None
It should be:
private async Task OnDataGridReadAsync(DataGridReadDataEventArgs<SupplierDto> e) { CurrentSorting = e.Columns .Where(c => c.SortDirection != SortDirection.Default) .Select(c => c.Field + (c.SortDirection == SortDirection.Descending ? " DESC" : "")) .JoinAsString(","); CurrentPage = e.Page; await GetSuppliersAsync(); await InvokeAsync(StateHasChanged); }