public string GenerateForeignKeyDefinition(PropertyWrapper wr) { if (wr.IsForeignKey()) { return(" FOREIGN KEY(" + wr.Name + ") REFERENCES " + wr.GetForeignKey().AssociationPartnerClass.Name + "(" + wr.GetForeignKey().ReferencingPrimaryKeyName + ") "); } return(""); }
public override string CreateEntity(ClassWrapper clsWrapper) { List <string> fKStatements = new List <string>(); string result = "CREATE TABLE IF NOT EXISTS " + clsWrapper.Name + " ("; for (int i = 0; i < clsWrapper.GetWrappedFields().Count; i++) { PropertyWrapper wr = clsWrapper.GetWrappedFields()[i]; result += GenerateFieldDefinition(wr); if (wr.IsForeignKey()) { fKStatements.Add(GenerateForeignKeyDefinition(wr)); } if (i < clsWrapper.GetWrappedFields().Count - 1 || fKStatements.Count > 0) { result += " ,"; } } // add FK definitions for (int i = 0; i < fKStatements.Count; i++) { result += fKStatements[i]; if (i < fKStatements.Count - 1) { result += " , "; } } result += " )"; return(result); }