Hi there,
I think TypeConverter is not what you need here. A TypeConverter takes a DB field .net type and converts it to a Model field .net type, and back. So when you fetch an entity from DB it comes with this DB field .net type and converts it to this model field type. Then you save the entity, so the model filed .net type is converted back to the DB field type which is what the connector (and so the DB) is expecting.
The GuidByteArrayConverter takes the DB field type "byte[]" and converts it to a Model field type "Guid" and vice versa. Tha's why you don't see this converter in the available converters for a field, because the db field is not byte[] so it's not a candidate for that converter.
This is extracted from the System Type Converters documentation page:
Guid <-> byte[]
Type: GuidByteArrayConverter
Db field .NET types supported: byte[]
Frameworks supporting this conversion: Entity Framework Core 2.1+, LLBLGen Pro Runtime Framework
Your problem is different: you are modeling with different types that the ones you are using in runtime. Some possible solutions:
A. Create a database with the types you are looking for. In this case, BYTE[] instead of GUID. And use this database for modeling. No TypeConverters required.
B. Edit the DB field type definition in LLBLGen. This is like telling LLBLGen Designer: "Guid is not the correct DB Type, it's byte". The problem with this is that in each synchronization the type would cause conflicts.
C. Sames as B, but you don't use Database First approach, but Model First. You then change all the DB field definitions and Sync, this would generate an ALTER script that you would ignore.
I would recommend that you take option A, as it implies just a "Find and Replace" operation in a db script, and it's more clean and natural.
I hope that helps.