/// <summary> /// Helper to update ModelBuilderSettings from listbox selection /// </summary> private void UpdateSettingsFromGui(int selectedOptionIndex, string modelPath) { Wizard.ModelBuilderSettings.ModelPath = modelPath; if (selectedOptionIndex == GenerateEmptyModelIndex) { Wizard.ModelBuilderSettings.GenerationOption = ModelGenerationOption.EmptyModel; LazyInitialModelContentsFactory.AddSchemaSpecificReplacements( Wizard.ModelBuilderSettings.ReplacementDictionary, Wizard.ModelBuilderSettings.TargetSchemaVersion); } else { Debug.Assert(selectedOptionIndex == GenerateFromDatabaseIndex, "Unexpected index."); Wizard.ModelBuilderSettings.GenerationOption = ModelGenerationOption.GenerateFromDatabase; Debug.Assert(Wizard.ModelBuilderSettings.VsTemplatePath != null, "Invalid vstemplate path."); Wizard.ModelBuilderSettings.ModelBuilderEngine = new InMemoryModelBuilderEngine( new LazyInitialModelContentsFactory( GetEdmxTemplateContent(Wizard.ModelBuilderSettings.VsTemplatePath), Wizard.ModelBuilderSettings.ReplacementDictionary)); } }
// <summary> // Helper to update ModelBuilderSettings from listbox selection // </summary> private void UpdateSettingsFromGui(int selectedOptionIndex, string modelPath) { Wizard.ModelBuilderSettings.ModelPath = modelPath; if (selectedOptionIndex == GenerateEmptyModelIndex) { Debug.Assert( Wizard.ModelBuilderSettings.GenerationOption == ModelGenerationOption.EmptyModel, "Generation option not updated correctly"); Wizard.ModelBuilderSettings.ModelBuilderEngine = null; LazyInitialModelContentsFactory.AddSchemaSpecificReplacements( Wizard.ModelBuilderSettings.ReplacementDictionary, Wizard.ModelBuilderSettings.TargetSchemaVersion); } else if (selectedOptionIndex == GenerateFromDatabaseIndex) { Debug.Assert( Wizard.ModelBuilderSettings.GenerationOption == ModelGenerationOption.GenerateFromDatabase, "Generation option not updated correctly"); Debug.Assert(Wizard.ModelBuilderSettings.VsTemplatePath != null, "Invalid vstemplate path."); Wizard.ModelBuilderSettings.ModelBuilderEngine = new EdmxModelBuilderEngine( new LazyInitialModelContentsFactory( GetEdmxTemplateContent(Wizard.ModelBuilderSettings.VsTemplatePath), Wizard.ModelBuilderSettings.ReplacementDictionary)); } else if (selectedOptionIndex == GenerateCodeFirstFromDatabaseIndex) { Debug.Assert( Wizard.ModelBuilderSettings.GenerationOption == ModelGenerationOption.CodeFirstFromDatabase, "Generation option not updated correctly"); Wizard.ModelBuilderSettings.ModelBuilderEngine = new CodeFirstModelBuilderEngine(); } else { Debug.Assert(selectedOptionIndex == GenerateEmptyModelCodeFirstIndex, "Unexpected index."); Debug.Assert( (Wizard.ModelBuilderSettings.GenerationOption == ModelGenerationOption.EmptyModelCodeFirst && selectedOptionIndex == GenerateEmptyModelCodeFirstIndex), "Generation option not updated correctly"); Wizard.ModelBuilderSettings.ModelBuilderEngine = null; Wizard.ModelBuilderSettings.AppConfigConnectionPropertyName = ConnectionManager.GetUniqueConnectionStringName( _configFileUtils, Wizard.ModelBuilderSettings.ModelName); // for CodeFirst empty model we always add a localdb connection var initialCatalog = string.Format( CultureInfo.CurrentCulture, "{0}.{1}", Wizard.ModelBuilderSettings.ReplacementDictionary["$rootnamespace$"], Wizard.ModelBuilderSettings.ModelName); Wizard.ModelBuilderSettings.SaveConnectionStringInAppConfig = true; var defaultConnectionString = ConnectionManager.CreateDefaultLocalDbConnectionString(initialCatalog); Wizard.ModelBuilderSettings.SetInvariantNamesAndConnectionStrings( ServiceProvider, Wizard.Project, ConnectionManager.SqlClientProviderName, defaultConnectionString, defaultConnectionString, isDesignTime: false); } }