MySql.Data.MySqlClient.MySqlProviderServices.GetTableCreateScript C# (CSharp) Method

GetTableCreateScript() private method

private GetTableCreateScript ( System.Data.Metadata.Edm.EntitySet entitySet ) : string
entitySet System.Data.Metadata.Edm.EntitySet
return string
    private string GetTableCreateScript(EntitySet entitySet)
    {
      EntityType e = entitySet.ElementType;

      string typeName = null;
      if (_pluralizedNames.ContainsKey(e.Name))
      {
        typeName = _pluralizedNames[e.Name];
      }
      else
      {
        _pluralizedNames.Add(e.Name, 
          (string)entitySet.MetadataProperties["Table"].Value == null ? 
          e.Name : (string)entitySet.MetadataProperties["Table"].Value);
        typeName = _pluralizedNames[e.Name];
      }

      StringBuilder sql = new StringBuilder("CREATE TABLE ");
      sql.AppendFormat("`{0}`(", typeName );
      string delimiter = "";
      bool hasPK = false;
      foreach (EdmProperty c in e.Properties)
      {
        Facet facet;
        hasPK = hasPK ||
            (c.TypeUsage.Facets.TryGetValue("StoreGeneratedPattern", false, out facet) &&
            facet.Value.Equals(StoreGeneratedPattern.Identity));
        sql.AppendFormat("{0}{1}\t`{2}` {3}{4}", delimiter, Environment.NewLine, c.Name,
            GetColumnType(c.TypeUsage), GetFacetString(c));
        delimiter = ", ";
      }
      sql.AppendLine(");");
      sql.AppendLine();
      if (!hasPK && e.KeyMembers.Count > 0)
      {
        sql.Append(String.Format(
            "ALTER TABLE `{0}` ADD PRIMARY KEY (", typeName ));
        delimiter = "";
        foreach (EdmMember m in e.KeyMembers)
        {
          sql.AppendFormat("{0}{1}", delimiter, m.Name);
          delimiter = ", ";
        }
        sql.AppendLine(");");
        sql.AppendLine();
      }
      return sql.ToString();
    }

Usage Example

    public string GetTableCreateScript(EntitySet entitySet, string connectionString, string version)
    {
      MySqlProviderServices service = new MySqlProviderServices();

      if (!String.IsNullOrEmpty(version))
        service.serverVersion = new Version(version);
      else
      {
        using (var conn = new MySqlConnection(connectionString.Replace(@"""", "")))
        {
          conn.Open();                  
          var v = DBVersion.Parse(conn.ServerVersion.ToString());        
          service.serverVersion = new Version(v.Major + "." + v.Minor);
        }
      }
      if (service.serverVersion == null) service.serverVersion = new Version("5.5");
      return service.GetTableCreateScript(entitySet); 
    }
All Usage Examples Of MySql.Data.MySqlClient.MySqlProviderServices::GetTableCreateScript