none
Como salvar uma entidade sem salvar uma entidade associada EF4 RRS feed

  • Pergunta

  • Estou usando o EF4 pra fazer um sistema aqui e estou tendo o seguinte problema. 

    Tenho uma classe Produto que tem como atributo Categoria, quando vou salvar a um objeto Produto o EF4 tenta salvar um objeto Categoria. Como evitar isso?


    • Editado NatanSouza terça-feira, 20 de setembro de 2011 03:31
    terça-feira, 20 de setembro de 2011 03:31

Todas as Respostas

  • Você precisa carregar o objeto Categoria e associar ele ao objeto produto... Neste exemplo existe 4 itens cadastrados na tabela categoria. Veja que preencho o objeto categoria de acordo com o Identificador da categoria e em seguida associo o objeto categoria ao meu objeto Produto.

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace CA_CSharp
    {
        class Program
        {
            static void Main(string[] args)
            {
                /*
                 *    CATEGORIAS
                 *   ID     NOME
                 *   1      Eletronicos      
                 *   2      Brinquedos
                 *   3      Informática
                 *   4      Perfumes
                 */  
    
                MSDNEntities entidade = new MSDNEntities();
                PRODUTO produto = new PRODUTO();
                
                produto.Nome = "Mouse Microsoft";
                produto.DataCadastro = DateTime.Now;
    
                CATEGORIA categoria = (from c in entidade.CATEGORIA
                                       where c.CategoriaId == 3 // Informática
                                       select c).FirstOrDefault();
    
                produto.CATEGORIA = categoria;
    
                entidade.AddToPRODUTO(produto);
                entidade.SaveChanges();
                
               
                Console.ReadKey();
    
            }
        }
    }
    
    

     


    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    terça-feira, 20 de setembro de 2011 12:30