Hi @Pet Loki ,
I don't know how to do that carrying on the additional data I need to gather from "FK table", master table, parent table or however its name might be. Maybe that is my real question: How do you access or gather the values that I need to store at SaveChanges moment?
Before inserting related entities, you should check whether the related entity is exists or not? For example, before inserting the State entity, you will query whether the Country exists or not. If it exists, you can get the Country from the Countries table and assign to the State entity. If the country doesn't exist, you need to create a new country. Then, call the SaveChanges method to save the new data. After that, you can get the relates entities and its properties via the Navigation property, because you have configured the one-to-many relationship between them.
Refer the following articles: Navigation Properties , EF Core Relationships and Loading Related Data.
Besides, about the <labels> changed problem, as AgaveJoe said, you can add another table to store the update information (such as updator, tablename, original label, new label, updatetime,description (add log like this“{user} has changed the column from XX to YY at datetime” ) ). Then, you use it as a filter condition when query data.