Load related data and filter - Best practice

I'm starting a non-profit project with Blazor Studio and at least one SQL-Express database containing about 100 related tables. Some tables contain self-references to realize hierarchical (tree-like) relations (e.g. navigation through interests).

The tables are well organized and relationships are realized as long as possible by using primary- and foreign-key definitions. Additionally, some relations need to be mapped programmatically.

What is the recommended approach in combination with EF Core and Blazor Studio to program web pages displaying the data?

One example I'm working on:
User Access is organized in Tables for Users, Groups and Permission (permission entry may be read, update, delete).
Content Tables are organized (for example) as Blog, Post, Comments and -as sub tables defined by primary keys- language specific entries. There is a fallback language #1 defined. Any field in the language specific tabel (e.g. header1, body1, etc.) may be nullable and in that case the fallback entry of language #1 shall be used.

Each Blog or Post has possible entries for users and groups in the Permission table.

So to display the web page, it is required to filter the data for the current user and to present the content in the appropriate language and - if required - the fallback to language #1 has to be performed.

Thank you for any recommedation and / or example.

Hi @techsc,

You can check the built-in page templates for Master/Detail and Hierarchy. They show how to display hierarchical structures. You can then adapt them to your needs once you get the idea.

Yes, I'm using the Master/Detail code as reference together with https://learn.microsoft.com/en-us/ef/core/querying/related-data/

One specific question:
If i have for example a table with users and a column 'profilepicturefilename' with the value 'user1profileimg1.jpg' and another table with the column 'portalbasepath' with the value 'http://website1/pub/profile' the full path to embed in the razor page will be a combination of these values.
Would it be an elegant solution to extended the Model of User.cs with an attribute 'profilefullpath' in order to have a fully qualified data object containing all relevant sql-data plus calculated columns?