예제 #1
0
        internal NavigationProperty AddNavigationProperty(NavigationProperty np)
        {
            np.ParentType = this;
            UpdateClientServerName(np);
            _navigationProperties.Add(np);

            if (!IsQualifiedTypeName(np.EntityTypeName))
            {
                np.EntityTypeName = StructuralType.QualifyTypeName(np.EntityTypeName, this.Namespace);
            }
            return(np);
        }
예제 #2
0
        private TypeNameInfo ParseTypeName(String clrTypeName)
        {
            if (String.IsNullOrEmpty(clrTypeName))
            {
                return(null);
            }
            if (clrTypeName.StartsWith(MetadataStore.ANONTYPE_PREFIX))
            {
                return(new TypeNameInfo()
                {
                    ShortTypeName = clrTypeName,
                    Namespace = "",
                    TypeName = clrTypeName,
                    IsAnonymous = true,
                });
            }

            var entityTypeNameNoAssembly = clrTypeName.Split(',')[0];
            var nameParts = entityTypeNameNoAssembly.Split('.');

            if (nameParts.Length > 1)
            {
                var shortName = nameParts[nameParts.Length - 1];
                // var nsParts = nameParts.Take(nameParts.Length - 1).ToArray();
                var ns = GetNamespaceFor(shortName);

                return(new TypeNameInfo()
                {
                    ShortTypeName = shortName,
                    Namespace = ns,
                    TypeName = StructuralType.QualifyTypeName(shortName, ns)
                });
            }
            else
            {
                return(new TypeNameInfo()
                {
                    ShortTypeName = clrTypeName,
                    Namespace = "",
                    TypeName = clrTypeName
                });
            }
        }
예제 #3
0
        private String NormalizeEntityTypeName(String clrTypeName)
        {
            if (String.IsNullOrEmpty(clrTypeName))
            {
                return(null);
            }

            var    entityTypeNameNoAssembly = clrTypeName.Split(',')[0];
            var    nameParts = entityTypeNameNoAssembly.Split('.');
            String ns;
            var    shortName = nameParts[nameParts.Length - 1];

            if (nameParts.Length > 1)
            {
                ns = String.Join(".", nameParts.Take(nameParts.Length - 1));
            }
            else
            {
                ns = "";
            }
            var typeName = StructuralType.QualifyTypeName(shortName, ns);

            return(typeName);
        }