public string Generator(string tableName, string fieldName1, string dataType1, string fieldName2, string dataType2, string Parent) { try { if (Parent == null) //=> No Relation { var projectCollection = ProjectCollection.GlobalProjectCollection; string projPath = "~/BlogIT.Web.csproj"; var p = projectCollection.LoadProject(Server.MapPath(projPath)); string projItem1 = "~/Entities/" + tableName + ".cs"; GenerateTable genTable = new GenerateTable(tableName); genTable.AddFields(fieldName1, dataType1, fieldName2, dataType2); genTable.GenerateCSharpCode(Server.MapPath(projItem1)); p.AddItem("Compile", Server.MapPath(projItem1)); p.Save(); string projItem2 = "~/Mapping/" + tableName + "Map.cs"; GenerateMap genMap = new GenerateMap(tableName); genMap.AddConstructor(fieldName1, fieldName2, tableName); genMap.GenerateCSharpCode(Server.MapPath(projItem2)); p.AddItem("Compile", Server.MapPath(projItem2)); p.Save(); ProjectCollection.GlobalProjectCollection.UnloadProject(p); p.Build(); NHibernate.OpenSession(); } else if (Parent != null)//=> Relation To Parent { var projectCollection = ProjectCollection.GlobalProjectCollection; string projPath = "~/MVCNHibernate.csproj"; var p = projectCollection.LoadProject(Server.MapPath(projPath)); string fileNameEn = "~/Entities/" + tableName + ".cs"; GenerateTable genTable = new GenerateTable(tableName); genTable.RelationalAddFields(tableName, fieldName1, dataType1, fieldName2, dataType2, Parent); genTable.GenerateCSharpCode(Server.MapPath(fileNameEn)); string projItem1 = "~/Entities/" + tableName + ".cs"; p.AddItem("Compile", Server.MapPath(projItem1)); p.Save(); string fileNameMap = "~/Mapping/" + tableName + "Map.cs"; GenerateMap genMap = new GenerateMap(tableName); genMap.RelationalAddConstructor(fieldName1, fieldName2, tableName, Parent); genMap.GenerateCSharpCode(Server.MapPath(fileNameMap)); string projItem2 = "~/Mapping/" + tableName + "Map.cs"; p.AddItem("Compile", Server.MapPath(projItem2)); p.Save(); //ProjectCollection.GlobalProjectCollection.UnloadProject(p); ProjectCollection.GlobalProjectCollection.UnloadAllProjects(); p.Build(); NHibernate.OpenSession(); } return("Database generated Successfully "); } catch { return("Database did not generate Successfully "); } }