protected virtual void UpdateDesignerInfo(EdmxHelper edmxHelper, ModelBuilderSettings settings) { Debug.Assert(edmxHelper != null); edmxHelper.UpdateDesignerOptionProperty( OptionsDesignerInfo.AttributeEnablePluralization, settings.UsePluralizationService); edmxHelper.UpdateDesignerOptionProperty( OptionsDesignerInfo.AttributeIncludeForeignKeysInModel, settings.IncludeForeignKeysInModel); edmxHelper.UpdateDesignerOptionProperty( OptionsDesignerInfo.AttributeUseLegacyProvider, settings.UseLegacyProvider); }
// internal virtual to allow mocking protected override void ProcessModel(DbModel model, string storeModelNamespace, ModelBuilderSettings settings, ModelBuilderEngineHostContext hostContext, List <EdmSchemaError> errors) { Edmx = XDocument.Parse(_initialModelContentsFactory.GetInitialModelContents(settings.TargetSchemaVersion)); var edmxHelper = new EdmxHelper(Edmx); edmxHelper.UpdateEdmxFromModel(model, storeModelNamespace, settings.ModelNamespace, errors); // load extensions that want to update model after the wizard has run. hostContext.DispatchToModelGenerationExtensions(); UpdateDesignerInfo(edmxHelper, settings); }
internal virtual void GenerateModel(EdmxHelper edmxHelper, ModelBuilderSettings settings, ModelBuilderEngineHostContext hostContext) { var generatingModelWatch = Stopwatch.StartNew(); // Clear out the ModelGenErrorCache before ModelGen begins PackageManager.Package.ModelGenErrorCache.RemoveErrors(settings.ModelPath); var errors = new List <EdmSchemaError>(); try { var storeModelNamespace = GetStoreNamespace(settings); var model = GenerateModels(storeModelNamespace, settings, errors); edmxHelper.UpdateEdmxFromModel(model, storeModelNamespace, settings.ModelNamespace, errors); // load extensions that want to update model after the wizard has run. hostContext.DispatchToModelGenerationExtensions(); UpdateDesignerInfo(edmxHelper, settings); hostContext.LogMessage( FormatMessage( errors.Any() ? Resources.Engine_ModelGenErrors : Resources.Engine_ModelGenSuccess, Path.GetFileName(settings.ModelPath))); if (errors.Any()) { PackageManager.Package.ModelGenErrorCache.AddErrors(settings.ModelPath, errors); } } catch (Exception e) { hostContext.LogMessage(FormatMessage(Resources.Engine_ModelGenException, e)); } generatingModelWatch.Stop(); hostContext.LogMessage(FormatMessage(Resources.LoadingDBMetadataTimeMsg, settings.LoadingDBMetatdataTime)); hostContext.LogMessage(FormatMessage(Resources.GeneratingModelTimeMsg, generatingModelWatch.Elapsed)); }
internal void UpdateDesignerInfoInvoker(EdmxHelper edmxHelper, ModelBuilderSettings settings) { UpdateDesignerInfo(edmxHelper, settings); }
protected override void UpdateDesignerInfo(EdmxHelper edmxHelper, ModelBuilderSettings settings) { // in the update model case, there is no need to fix up the designer info // since it would only be applied to the temporary artifact and then ignored }