Exemplo n.º 1
0
        public static List <EntityProperty> ListColumnsOfTable(string dbName, string tableName)
        {
            var result = new List <EntityProperty>();

            var server = new Microsoft.SqlServer.Management.Smo.Server(serverName);
            var db     = new Microsoft.SqlServer.Management.Smo.Database(server, dbName);
            var table  = new Microsoft.SqlServer.Management.Smo.Table(db, tableName);

            table.Refresh();
            var dic = new Dictionary <string, string>();

            foreach (Microsoft.SqlServer.Management.Smo.ForeignKey item in table.ForeignKeys)
            {
                dic.Add(item.Columns[0].Name, item.ReferencedTable);
            }
            foreach (Microsoft.SqlServer.Management.Smo.Column item in table.Columns)
            {
                var propertyType = _typeMapping[item.DataType.Name];
                if (item.Nullable == true && propertyType != "string")
                {
                    propertyType = propertyType + "?";
                }

                var entityProperty = new EntityProperty()
                {
                    PropertyType = propertyType,
                    PropertyName = item.Name,
                    IsForeignKey = item.IsForeignKey,
                    IsIdentity   = item.Identity
                };
                if (item.IsForeignKey == true)
                {
                    entityProperty.ForeignKeyTableName = UpperFirstLetter(dic[item.Name]);
                }
                result.Add(entityProperty);
            }
            return(result);
        }