示例#1
0
        private string WriteDbContext(FileSystemInfo directory, ProjectWriter projectWriter)
        {
            var writer = new CodeFirstContextWriter(_codeWriterSettings);

            if (ProviderToSqlType.Convert(_schema.Provider) == SqlType.Oracle)
            {
                writer.IsOracle = true;
                projectWriter.AddDevartOracleReference();
            }
            var databaseTables = _schema.Tables.Where(t => !FilterIneligible(t))
                                 .ToList();

            if (_codeWriterSettings.IncludeViews)
            {
                databaseTables.AddRange(_schema.Views.OfType <DatabaseTable>());
            }
            var txt      = writer.Write(databaseTables);
            var fileName = writer.ContextName + ".cs";

            File.WriteAllText(
                Path.Combine(directory.FullName, fileName),
                txt);
            projectWriter.AddClass(fileName);
            return(writer.ContextName);
        }
        public void ExecuteTest()
        {
            //arrange
            DatabaseSchema schema   = PrepareModel();
            var            settings = new CodeWriterSettings();
            var            target   = new CodeFirstContextWriter(settings);

            //act
            var result = target.Write(schema.Tables);

            //assert
            var hasDbSet   = result.Contains("public IDbSet<Product> ProductCollection");
            var hasMapping = result.Contains("modelBuilder.Configurations.Add(new ProductMapping());");

            Assert.IsTrue(hasDbSet);
            Assert.IsTrue(hasMapping);
        }
        public void ExecuteTest()
        {
            //arrange
            var schema   = PrepareModel();
            var settings = new CodeWriterSettings {
                CodeTarget = CodeTarget.PocoEfCore
            };
            var target = new CodeFirstContextWriter(settings);

            //act
            var result = target.Write(schema.Tables);

            //assert
            var hasDbSet           = result.Contains("public DbSet<Product> ProductCollection");
            var hasOnModelCreating = result.Contains("protected override void OnModelCreating(ModelBuilder modelBuilder)");
            var hasMapping         = result.Contains("modelBuilder.Entity<Product>(ProductMapping.Map);");

            Assert.IsTrue(hasDbSet);
            Assert.IsTrue(hasOnModelCreating);
            Assert.IsTrue(hasMapping);
        }
        public void ExecuteTest()
        {
            //arrange
            DatabaseSchema schema   = PrepareModel();
            var            settings = new CodeWriterSettings();

            settings.IncludeViews = true;
            var target = new CodeFirstContextWriter(settings);
            var list   = new List <DatabaseTable>(schema.Tables);

            list.AddRange(schema.Views.OfType <DatabaseTable>());

            //act
            var result = target.Write(list);

            //assert
            var hasDbSet   = result.Contains("public IDbSet<AlphabeticCategory> AlphabeticCategoryCollection");
            var hasMapping = result.Contains("modelBuilder.Configurations.Add(new AlphabeticCategoryMapping());");

            Assert.IsTrue(hasDbSet);
            Assert.IsTrue(hasMapping);
        }