Is MariaDB supported?

I searched past forum posts, the last direct answer was in 2018 that there were issues using MariaDB.

I have found many recent blogs showing Entity Framework working with MariaDB.

Could the Radzen team confirm/deny that MariaDB is supported and works with Radzen Blazor Studio?

Thanks in advance.

It should work via the MySql database option in Radzen Blazor Studio. You may have to change the port in the connection string:

Thanks for the reply. Circling back on this as I'm not sure if I did something wrong, but modifying MariaDB may be causing issues in Radzen.

  1. Created a simple MariaDB database, article, tag, and articletag tables.
  2. Created a new Blazor WASM application in Radzen Blazor Studio.
  3. Connected to MariaDB database, scaffolded entities and generated CRUD pages.
  4. Tested the application, verified it could add records.
  5. Using HeidiSQL, added a new column to the article table.
  6. Regenerated schema only for article table. Skipped any CRUD page modifications.

I now have a long list of errors. I'd really like to use MariaDB to avoid hosting costs using SQL Server.

It's not clear to me why I have errors regarding tags, as that entity wasn't changed. I've tried shutting down and restarting Radzen but no change. I have made no changes to the app or generated code.

dotnet watch 🚀 Started
Building...
C:\Users\Don\code\MariaArticlesApp\Client\Pages\AddTag.razor.cs(46,46): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'CreateTag' and no accessible extension method 'CreateTag' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\Tags.razor.cs(56,59): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'GetTags' and no accessible extension method 'GetTags' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\Tags.razor.cs(58,32): error CS0428: Cannot convert method group 'Count' to non-delegate type 'int'. Did you intend to invoke the method? [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\AddArticletag.razor.cs(70,59): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'GetTags' and no accessible extension method 'GetTags' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\AddArticletag.razor.cs(72,44): error CS0428: Cannot convert method group 'Count' to non-delegate type 'int'. Did you intend to invoke the method? [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\AddArticletag.razor.cs(84,46): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'CreateArticletag' and no accessible extension method 'CreateArticletag' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\Tags.razor.cs(84,69): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'DeleteTag' and no accessible extension method 'DeleteTag' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\Articletags.razor.cs(56,59): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'GetArticletags' and no accessible extension method 'GetArticletags' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\Articletags.razor.cs(58,32): error CS0428: Cannot convert method group 'Count' to non-delegate type 'int'. Did you intend to invoke the method? [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\Articletags.razor.cs(84,69): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'DeleteArticletag' and no accessible extension method 'DeleteArticletag' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\EditTag.razor.cs(40,48): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'GetTagById' and no accessible extension method 'GetTagById' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\EditArticletag.razor.cs(43,55): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'GetArticletagByArticleIdAndTagId' and no accessible extension method 'GetArticletagByArticleIdAndTagId' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\EditTag.razor.cs(49,46): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'UpdateTag' and no accessible extension method 'UpdateTag' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\EditArticletag.razor.cs(76,59): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'GetTags' and no accessible extension method 'GetTags' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\EditArticletag.razor.cs(78,44): error CS0428: Cannot convert method group 'Count' to non-delegate type 'int'. Did you intend to invoke the method? [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]
C:\Users\Don\code\MariaArticlesApp\Client\Pages\EditArticletag.razor.cs(90,46): error CS1061: 'mariaarticlesdbService' does not contain a definition for 'UpdateArticletag' and no accessible extension method 'UpdateArticletag' accepting a first argument of type 'mariaarticlesdbService' could be found (are you missing a using directive or an assembly reference?) [C:\Users\Don\code\MariaArticlesApp\Client\MariaArticlesApp.Client.csproj]

The build failed. Fix the build errors and run again.

dotnet watch ❌ Exited with error code 1

To add, I could possibly go with MySQL or PostgreSQL if those were more compatible with Radzen / Entity Framework.

I'm starting to lean towards just using SQL Server to prevent any issues.

SQL Server Express is free and a great option if you don't have a need to store more then 10GB of data.

This looks as an issue with the database schema itself not MariaDB. How does the service look like? What files are generated in the Models directory?

Those type of errors can occur if you unselected sql tables you previously used to create CRUD pages.

Ah I did indeed.

When I went to refresh the schema, I only selected the table I changed.

Should I always have all tables selected?

Yes, you should always select the tables that you need Radzen Blazor Studio to generate code for. But you don't need to generate all related CRUD pages every time.

Great, I understand now.

One idea that might help would be for the entity/table selection dialog to detect and notify if models have already been generated for unselected tables.

"Warning: you've unselected table "Tags" but a Model exists for it"

Or:

"Detected 5 unselected tables that have preexisting models, are you sure you want to remove them?"

Radzen Blazor Studio should already select all tables that have models generated for them.