I think the problem is that you are using One Table instead of Two..
I'll explain (As I understand it).
To have a dynamic object attributes (defined by the user/admin), you use a table to define those attributes and their display names (AttributeValue/AttributeName)...right?
Thus for Employees, we can have "Salary, EmpNumber, ....etc"
for Orders, we can have "OrderDate, OrderNumber...etc"
This is fine to be stored in one table.
But yet you need another table to store the individual values for each Entity.
I mean the values for those attributes for Each Employee record.
So for Sam the AttributeName = "EmploymentState" holds the value "Terminated"
But for Walaa it holds the value "Promoted"
And then you have 2 options:
1- You can have one Attributes Table and one Values Table for each Object in your system.
Without the need of the "OjbectTypeCode" to differentiate them.
2- You may have only one Attributes Table and one Values Table for all you objects. (As you did)In that case you should use a discriminator field "OjbectTypeCode".
And either create database views for each database object using OjbectTypeCode as a filter, and use LLBLGen Pro to map these views as Entities and define their relations with the other entities.
Or use LLBLGen Pro to define hierarchy of type TargetPerEntityHierarchy using the OjbectTypeCode as the discriminator.