예제 #1
0
        /// <summary>
        /// Returns the name of the table column for an entity's property.
        /// </summary>
        /// <param name="inspector">The model inspector.</param>
        /// <param name="member">The entity property.</param>
        /// <param name="declaringType"> </param>
        /// <returns>The name of the table column.</returns>
        public string Column(IModelInspector inspector, PropertyPath member, Type declaringType = null)
        {
            Requires.That(member, "member").IsNotNull();
            Requires.That(member.LocalMember, "member.LocalMember").IsNotNull();

            var localName = member.LocalMember.Name.Underscore();

            if (declaringType != null)
            {
                return(KeyColumnFormat.Formatted(declaringType.Name.Underscore(), localName));
            }

            var type = member.LocalMember.GetPropertyOrFieldType();

            if (inspector.IsEntity(type)) // is a foreign key
            {
                var id = inspector.FindPersistentId(type);

                if (id != null)
                {
                    return(KeyColumnFormat.Formatted(localName, Column(inspector, id)));
                }
            }

            return(localName);
        }
예제 #2
0
        /// <summary>
        /// Returns the name of a key column.
        /// </summary>
        /// <param name="inspector">The model inspector.</param>
        /// <param name="member"></param>
        /// <param name="declaringType"> </param>
        /// <returns></returns>
        public string KeyColumn(IModelInspector inspector, PropertyPath member, Type declaringType = null)
        {
            Requires.That(member, "member").IsNotNull();
            Requires.That(member.LocalMember, "member.LocalMember").IsNotNull();

            var type      = declaringType ?? member.LocalMember.DeclaringType;
            var localName = type.Name.Underscore();
            var id        = inspector.FindPersistentId(type);

            return(KeyColumnFormat.Formatted(localName, id.LocalMember.Name.Underscore()));
        }
        /// <summary>
        /// Returns the name of the table column for an entity's property.
        /// </summary>
        /// <param name="inspector">The model inspector.</param>
        /// <param name="member">The entity property.</param>
        /// <param name="declaringType"> </param>
        /// <returns>The name of the table column.</returns>
        public string Column(IModelInspector inspector, PropertyPath member, Type declaringType = null)
        {
            Requires.That(member, "member").IsNotNull();
            Requires.That(member.LocalMember, "member.LocalMember").IsNotNull();

            var localName = member.LocalMember.Name.Underscore();

            if (declaringType != null)
            {
                return KeyColumnFormat.Formatted(declaringType.Name.Underscore(), localName);
            }

            var type = member.LocalMember.GetPropertyOrFieldType();

            if (inspector.IsEntity(type)) // is a foreign key
            {
                var id = inspector.FindPersistentId(type);

                if (id != null) return KeyColumnFormat.Formatted(localName, Column(inspector, id));
            }

            return localName;
        }
        /// <summary>
        /// Returns the name of a key column.
        /// </summary>
        /// <param name="inspector">The model inspector.</param>
        /// <param name="member"></param>
        /// <param name="declaringType"> </param>
        /// <returns></returns>
        public string KeyColumn(IModelInspector inspector, PropertyPath member, Type declaringType = null)
        {
            Requires.That(member, "member").IsNotNull();
            Requires.That(member.LocalMember, "member.LocalMember").IsNotNull();

            var type = declaringType ?? member.LocalMember.DeclaringType;
            var localName = type.Name.Underscore();
            var id = inspector.FindPersistentId(type);

            return KeyColumnFormat.Formatted(localName, id.LocalMember.Name.Underscore());
        }