public void It_adds_provider_method_names()
        {
            var model = new Model();

            Assert.Null(model.Scaffolding().UseProviderMethodName);

            model.Scaffolding().UseProviderMethodName = "UsePutRelationalProviderNameHere";
            Assert.Equal("UsePutRelationalProviderNameHere", model.Scaffolding().UseProviderMethodName);

            model.Scaffolding().UseProviderMethodName = null;
            Assert.Null(model.Scaffolding().UseProviderMethodName);
        }
        public void It_adds_provider_method_names()
        {
            var model = new Model();

            Assert.Null(model.Scaffolding().UseProviderMethodName);

            model.Scaffolding().UseProviderMethodName = "UsePutRelationalProviderNameHere";
            Assert.Equal("UsePutRelationalProviderNameHere", model.Scaffolding().UseProviderMethodName);

            model.Scaffolding().UseProviderMethodName = null;
            Assert.Null(model.Scaffolding().UseProviderMethodName);
        }
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public virtual string ClassName()
        {
            var annotatedName = Model.Scaffolding().DatabaseName;

            if (!string.IsNullOrEmpty(annotatedName))
            {
                return(CSharpUtilities.GenerateCSharpIdentifier(annotatedName + DbContextSuffix, null));
            }

            return(DefaultDbContextName);
        }
        public void It_sets_gets_database_name()
        {
            var model      = new Model();
            var extensions = model.Scaffolding();

            Assert.Null(extensions.DatabaseName);

            extensions.DatabaseName = "Northwind";

            Assert.Equal("Northwind", extensions.DatabaseName);

            extensions.DatabaseName = null;

            Assert.Null(extensions.DatabaseName);
        }
        public void It_sets_gets_entity_type_errors()
        {
            var model = new Model();

            model.Scaffolding().EntityTypeErrors.Add("ET", "FAIL!");
            Assert.Equal("FAIL!", model.Scaffolding().EntityTypeErrors["ET"]);

            model.Scaffolding().EntityTypeErrors = new Dictionary <string, string>();
            Assert.Empty(model.Scaffolding().EntityTypeErrors.Values);

            model.Scaffolding().EntityTypeErrors["ET"] = "FAIL 2!";
            model.Scaffolding().EntityTypeErrors.Clear();
            Assert.Empty(model.Scaffolding().EntityTypeErrors.Values);
        }
        public void It_sets_gets_entity_type_errors()
        { 
            var model = new Model();

            model.Scaffolding().EntityTypeErrors.Add("ET", "FAIL!");
            Assert.Equal("FAIL!", model.Scaffolding().EntityTypeErrors["ET"]);

            model.Scaffolding().EntityTypeErrors = new Dictionary<string,string>();
            Assert.Empty(model.Scaffolding().EntityTypeErrors.Values);

            model.Scaffolding().EntityTypeErrors["ET"] = "FAIL 2!";
            model.Scaffolding().EntityTypeErrors.Clear();
            Assert.Empty(model.Scaffolding().EntityTypeErrors.Values);
        }
        public virtual void AddConnectionStringConfiguration()
        {
            var methodName = Model.Scaffolding().UseProviderMethodName;

            if (string.IsNullOrEmpty(methodName))
            {
                throw new InvalidOperationException(RelationalDesignStrings.MissingUseProviderMethodNameAnnotation);
            }

            _onConfiguringConfigurations.Add(
                _configurationFactory.CreateOptionsBuilderConfiguration(
                    methodName
                    + "("
                    + CSharpUtilities.GenerateVerbatimStringLiteral(CustomConfiguration.ConnectionString)
                    + ")"));
        }
        private ForeignKey CreateSelfRefFK(bool useAltKey = false)
        {
            var entityType = new Model().AddEntityType(typeof(SelfRef));

            entityType.Scaffolding().Schema = "SchemaName";
            var pk     = entityType.GetOrSetPrimaryKey(entityType.AddProperty(SelfRef.IdProperty));
            var fkProp = entityType.AddProperty(SelfRef.SelfRefIdProperty);

            var property     = entityType.AddProperty("AltId", typeof(int));
            var principalKey = useAltKey
                ? entityType.GetOrAddKey(property)
                : pk;

            var fk = entityType.AddForeignKey(new[] { fkProp }, principalKey, entityType);

            fk.IsUnique = true;
            fk.HasDependentToPrincipal(SelfRef.SelfRefPrincipalProperty);
            fk.HasPrincipalToDependent(SelfRef.SelfRefDependentProperty);
            return(fk);
        }