/// <summary>
        /// Generate the DbContext class.
        /// </summary>
        /// <param name="model">Metadata about the shape of entities, the relationships between them, and how they map to the database.</param>
        /// <param name="contextName">Name of DbContext class.</param>
        /// <param name="connectionString">Database connection string.</param>
        /// <param name="contextNamespace">Context namespace.</param>
        /// <param name="modelNamespace">Model namespace.</param>
        /// <param name="useDataAnnotations">If false use fluent modeling API.</param>
        /// <param name="suppressConnectionStringWarning">Suppress connection string warning.</param>
        /// <param name="suppressOnConfiguring">Suppress OnConfiguring method.</param>
        /// <returns>DbContext class.</returns>
        public override string WriteCode(IModel model, string contextName, string connectionString, string contextNamespace,
                                         string modelNamespace, bool useDataAnnotations, bool suppressConnectionStringWarning, bool suppressOnConfiguring)
        {
            Check.NotNull(model, nameof(model));

            if (!string.IsNullOrEmpty(modelNamespace) && string.CompareOrdinal(contextNamespace, modelNamespace) != 0)
            {
                _modelNamespace = modelNamespace;
            }

            TemplateData = new Dictionary <string, object>();

            if (_options.Value.TemplateData != null)
            {
                foreach (KeyValuePair <string, object> entry in _options.Value.TemplateData)
                {
                    TemplateData.Add(entry.Key, entry.Value);
                }
            }

            TemplateData.Add("namespace", contextNamespace);

            GenerateClass(model, contextName, connectionString, useDataAnnotations, suppressConnectionStringWarning, suppressOnConfiguring);

            string output = DbContextTemplateService.GenerateDbContext(TemplateData);

            return(output);
        }
コード例 #2
0
        /// <summary>
        /// Generate the DbContext class.
        /// </summary>
        /// <param name="model">Metadata about the shape of entities, the relationships between them, and how they map to the database.</param>
        /// <param name="namespace">DbContext namespace.</param>
        /// <param name="contextName">Name of DbContext class.</param>
        /// <param name="connectionString">Database connection string.</param>
        /// <param name="useDataAnnotations">If false use fluent modeling API.</param>
        /// <param name="suppressConnectionStringWarning">Suppress connection string warning.</param>
        /// <returns></returns>
        public virtual string WriteCode(
            IModel model,
            string @namespace,
            string contextName,
            string connectionString,
            bool useDataAnnotations,
            bool suppressConnectionStringWarning)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            TemplateData = new Dictionary <string, object>();
            TemplateData.Add("namespace", @namespace);

            GenerateClass(model, contextName, connectionString, useDataAnnotations, suppressConnectionStringWarning);

            string output = DbContextTemplateService.GenerateDbContext(TemplateData);

            return(output);
        }