예제 #1
0
 public DynamicManyToOneAssociationType(DynamicObjectType objectType, DynamicManyToOneRoleType roleType)
 {
     this.ObjectType          = objectType;
     roleType.AssociationType = this;
     this.RoleType            = roleType;
     this.SingularName        = roleType.SingularNameForAssociation(objectType);
     this.PluralName          = roleType.PluralNameForAssociation(objectType);
 }
        public DynamicManyToManyRoleType(DynamicObjectType objectType, string singularName)
        {
            var pluralizer = objectType.Meta.Pluralizer;

            this.ObjectType   = objectType;
            this.SingularName = singularName ?? objectType.Type.Name;
            this.PluralName   = pluralizer.Pluralize(this.SingularName);
        }
예제 #3
0
        internal DynamicObjectType GetOrAddObjectType(Type type)
        {
            if (!this.ObjectTypeByType.TryGetValue(type, out var objectType))
            {
                objectType = new DynamicObjectType(this, type);
                this.ObjectTypeByType.Add(type, objectType);
            }

            return(objectType);
        }
예제 #4
0
        public DynamicManyToManyRoleType AddManyToMany(DynamicObjectType roleObjectType, string roleName)
        {
            var roleType = new DynamicManyToManyRoleType(roleObjectType, roleName);

            this.AddRoleType(roleType);

            var associationType = new DynamicManyToManyAssociationType(this, roleType);

            roleObjectType.AddAssociationType(associationType);

            this.Meta.ResetDerivations();

            return(roleType);
        }
 internal static string SingularNameForAssociation(this IDynamicRoleType @this, DynamicObjectType objectType)
 {
     return($"{objectType.Type.Name}Where{@this.SingularName}");
 }
 internal static string PluralNameForAssociation(this IDynamicRoleType @this, DynamicObjectType objectType)
 {
     return($"{@this.ObjectType.Meta.Pluralizer.Pluralize(objectType.Type.Name)}Where{@this.SingularName}");
 }