public override void GenerateModel(ModelBuilderSettings settings) { var generatingModelWatch = Stopwatch.StartNew(); // Clear out the ModelGenErrorCache before ModelGen begins var errors = new List <EdmSchemaError>(); try { var storeModelNamespace = GetStoreNamespace(settings); Model = GenerateModels(storeModelNamespace, settings, errors); ProcessModel(Model, storeModelNamespace, settings, errors); } catch (Exception e) { Console.WriteLine(e.Data); throw; } finally { generatingModelWatch.Stop(); } }
private static string GetStoreNamespace(ModelBuilderSettings settings) { return (string.IsNullOrEmpty(settings.StorageNamespace) ? String.Format( CultureInfo.CurrentCulture, "{0}.Store", settings.ModelNamespace) : settings.StorageNamespace); }
public ModelGenerator(ModelBuilderSettings settings, string storeModelNamespace) { Debug.Assert(settings != null, "settings != null"); Debug.Assert( !string.IsNullOrWhiteSpace(storeModelNamespace), "namespace must not be null or empty string."); _settings = settings; _storeModelNamespace = storeModelNamespace; }
public virtual void GenerateModel(ModelBuilderSettings settings) { var generatingModelWatch = Stopwatch.StartNew(); var errors = new List <EdmSchemaError>(); try { var storeModelNamespace = GetStoreNamespace(settings); Model = GenerateModels(storeModelNamespace, settings, errors); ProcessModel(Model, storeModelNamespace, settings, errors); } catch (Exception e) { throw e; } finally { generatingModelWatch.Stop(); } }
protected abstract void ProcessModel( DbModel model, string storeModelNamespace, ModelBuilderSettings settings, List <EdmSchemaError> errors);
// internal virtual to allow mocking internal virtual DbModel GenerateModels(string storeModelNamespace, ModelBuilderSettings settings, List <EdmSchemaError> errors) { return(new ModelGenerator(settings, storeModelNamespace).GenerateModel(errors)); }
protected override void ProcessModel(DbModel model, string storeModelNamespace, ModelBuilderSettings settings, List <EdmSchemaError> errors) { ValidateModel(model, errors); }