コード例 #1
0
        /// <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));
            }
        }
コード例 #2
0
        // <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);
            }
        }