none
Alterar schema em EF com CODE FIRST RRS feed

  • Pergunta

  • Pessoal, existe alguma forma de alterar o schema para acessar as tabelas via SQL SERVER.

    O problema acontece que aonde eu hospedo meu site, os schemas são criadas conforme o nome da base, e o EF com CODE FIRST coloca diretamente dbo.TABELA, e por isto não acha a tabela.

    Abs


    Marlon Tiedt
    www.sesmt.com.br

    sexta-feira, 1 de junho de 2012 23:56

Respostas

  • Já achei a resposta.

    Li vários post, alguns falavam para pegar um outro projeto e colocar junto com o projeto principal.
    No link abaixo achei a solução. Simples e prática. Testei e funciona.

    http://stackoverflow.com/questions/9341922/change-entity-framework-database-schema-map-after-using-code-first 

    Para registro, adiciono aqui o código antes e depois:

    Antes:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    
    
    namespace ERP.Models
    {
        public class ERPCodeFirstContext : DbContext
        {
            public DbSet<CNAES> CNAES { get; set; }
    
            public ERPCodeFirstContext()
            {
                Database.SetInitializer<ERPCodeFirstContext>(null);            
            }       
    		
    
    }

    Depois:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    
    
    namespace ERP.Models
    {
        public class ERPCodeFirstContext : DbContext
        {
            public DbSet<CNAES> CNAES { get; set; }
    
            public ERPCodeFirstContext()
            {
                Database.SetInitializer<ERPCodeFirstContext>(null);            
            }       
    		
    		protected override void OnModelCreating(DbModelBuilder modelBuilder)
    		{
    			modelBuilder.Entity<CNAES>().ToTable("CNAES", schemaName: "ERP");
    		}
    	}
    }

    Estou gostando deste EF

    Abs...

    Marlon Tiedt
    www.sesmt.com.br

    • Marcado como Resposta Marlon Tiedt sábado, 2 de junho de 2012 00:45
    sábado, 2 de junho de 2012 00:45

Todas as Respostas

  • Marlon,

    Você faz isto com um DataAnnotation na sua classe:

    [Table("Cliente", Schema = "seuSchema")]
    public class Cliente { .. }

    []s,


    Carlos dos Santos
    blog: www.carloscds.net 
    twitter: @cdssoftware

    sábado, 2 de junho de 2012 00:28
  • Já achei a resposta.

    Li vários post, alguns falavam para pegar um outro projeto e colocar junto com o projeto principal.
    No link abaixo achei a solução. Simples e prática. Testei e funciona.

    http://stackoverflow.com/questions/9341922/change-entity-framework-database-schema-map-after-using-code-first 

    Para registro, adiciono aqui o código antes e depois:

    Antes:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    
    
    namespace ERP.Models
    {
        public class ERPCodeFirstContext : DbContext
        {
            public DbSet<CNAES> CNAES { get; set; }
    
            public ERPCodeFirstContext()
            {
                Database.SetInitializer<ERPCodeFirstContext>(null);            
            }       
    		
    
    }

    Depois:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    
    
    namespace ERP.Models
    {
        public class ERPCodeFirstContext : DbContext
        {
            public DbSet<CNAES> CNAES { get; set; }
    
            public ERPCodeFirstContext()
            {
                Database.SetInitializer<ERPCodeFirstContext>(null);            
            }       
    		
    		protected override void OnModelCreating(DbModelBuilder modelBuilder)
    		{
    			modelBuilder.Entity<CNAES>().ToTable("CNAES", schemaName: "ERP");
    		}
    	}
    }

    Estou gostando deste EF

    Abs...

    Marlon Tiedt
    www.sesmt.com.br

    • Marcado como Resposta Marlon Tiedt sábado, 2 de junho de 2012 00:45
    sábado, 2 de junho de 2012 00:45