none
ws entity framework. RRS feed

  • Pergunta

  • Olá galera.

    Vou ser bem direto.

    Estou desenvolvendo algumas rotinas no meu ws utilizando entity framework, estou fazendo um select simples com linq trazendo as informações da tabela A e C onde tenho uma tabela link B.

    Tudo ocorre bem esta trazendo as informações desejadas (A e B) porém na hora de imprimir a xml de retorno só vem as informações da tabela A, como posso resolver isso?

    Preciso das informações de ambas as tabelas na mesma xml de retorno.

    Obrigado.

    segunda-feira, 26 de novembro de 2012 16:46

Respostas

  • DicaImagens não esta com algum atributo do tipo NonSerializable?
    • Marcado como Resposta Romy Moura segunda-feira, 26 de novembro de 2012 18:38
    segunda-feira, 26 de novembro de 2012 18:06
  • DicaImagens não esta com algum atributo do tipo NonSerializable?

    Esta desta forma

     [global::System.Data.Objects.DataClasses.EdmRelationshipNavigationPropertyAttribute("v2elseveModel", "fk_DicaImagem_Dica", "DicaImagem")]
            [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
            [global::System.Xml.Serialization.XmlIgnoreAttribute()]
            [global::System.Xml.Serialization.SoapIgnoreAttribute()]
            [global::System.Runtime.Serialization.DataMemberAttribute()]
            public global::System.Data.Objects.DataClasses.EntityCollection<DicaImagem> DicaImagems
            {
                get
                {
                    return ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedCollection<DicaImagem>("v2elseveModel.fk_DicaImagem_Dica", "DicaImagem");
                }
                set
                {
                    if ((value != null))
                    {
                        ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.InitializeRelatedCollection<DicaImagem>("v2elseveModel.fk_DicaImagem_Dica", "DicaImagem", value);
                    }
                }
            }

     [global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="v2elseveModel", Name="DicaImagem")]
        [global::System.Runtime.Serialization.DataContractAttribute(IsReference=true)]
        [global::System.Serializable()]
        public partial class DicaImagem : global::System.Data.Objects.DataClasses.EntityObject
        {}

    //tabela link

    [global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="v2elseveModel", Name="TipoConteudo")]
        [global::System.Runtime.Serialization.DataContractAttribute(IsReference=true)]
        [global::System.Serializable()]
        public partial class TipoConteudo : global::System.Data.Objects.DataClasses.EntityObject
        {}

    O estranho é que traz as informações porém não aparece no retorno xml do ws.

    Coloquei desta forma e rolou ! \0/

      [global::System.Data.Objects.DataClasses.EdmRelationshipNavigationPropertyAttribute("v2elseveModel", "fk_DicaImagem_Dica", "DicaImagem")]
            [global::System.Runtime.Serialization.DataMemberAttribute()]
            [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
            //[global::System.Xml.Serialization.XmlIgnoreAttribute()]
            //[global::System.Xml.Serialization.SoapIgnoreAttribute()]
            //[global::System.Runtime.Serialization.DataMemberAttribute()]

    • Marcado como Resposta Romy Moura segunda-feira, 26 de novembro de 2012 18:38
    segunda-feira, 26 de novembro de 2012 18:37

Todas as Respostas

  • Pode postar seu código?
    segunda-feira, 26 de novembro de 2012 17:06
  • Pode postar seu código?
     [WebMethod]
        public List<Dica> ListaDicas()
        {

     using (db banco = new db())
            {


                var listaD = (from dicas in banco.Dicas.Include("DicaImagems")
                              select dicas).ToList();


                 return  listaD;
            }

    }

    segunda-feira, 26 de novembro de 2012 17:11
  • DicaImagens não esta com algum atributo do tipo NonSerializable?
    • Marcado como Resposta Romy Moura segunda-feira, 26 de novembro de 2012 18:38
    segunda-feira, 26 de novembro de 2012 18:06
  • DicaImagens não esta com algum atributo do tipo NonSerializable?

    Esta desta forma

     [global::System.Data.Objects.DataClasses.EdmRelationshipNavigationPropertyAttribute("v2elseveModel", "fk_DicaImagem_Dica", "DicaImagem")]
            [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
            [global::System.Xml.Serialization.XmlIgnoreAttribute()]
            [global::System.Xml.Serialization.SoapIgnoreAttribute()]
            [global::System.Runtime.Serialization.DataMemberAttribute()]
            public global::System.Data.Objects.DataClasses.EntityCollection<DicaImagem> DicaImagems
            {
                get
                {
                    return ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedCollection<DicaImagem>("v2elseveModel.fk_DicaImagem_Dica", "DicaImagem");
                }
                set
                {
                    if ((value != null))
                    {
                        ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.InitializeRelatedCollection<DicaImagem>("v2elseveModel.fk_DicaImagem_Dica", "DicaImagem", value);
                    }
                }
            }

     [global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="v2elseveModel", Name="DicaImagem")]
        [global::System.Runtime.Serialization.DataContractAttribute(IsReference=true)]
        [global::System.Serializable()]
        public partial class DicaImagem : global::System.Data.Objects.DataClasses.EntityObject
        {}

    //tabela link

    [global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="v2elseveModel", Name="TipoConteudo")]
        [global::System.Runtime.Serialization.DataContractAttribute(IsReference=true)]
        [global::System.Serializable()]
        public partial class TipoConteudo : global::System.Data.Objects.DataClasses.EntityObject
        {}

    O estranho é que traz as informações porém não aparece no retorno xml do ws.

    segunda-feira, 26 de novembro de 2012 18:30
  • Pode postar seu código?

     [WebMethod]
        public List<Dica> ListaDicas()
        {

     using (db banco = new db())
            {


                var listaD = (from dicas in banco.Dicas.Include("DicaImagems")
                              select dicas).ToList();


                 return  listaD;
            }

    }

    O problema é que o EF vem por padrão com Lazy Load. Para pegar os dados da tabela B vc precisa indica-los na query, ou desabilitar o Lazy Load

    Twitter: @MayogaX
    Blog: Dev Blog

    segunda-feira, 26 de novembro de 2012 18:31
  • Está sim:

    [global::System.Xml.Serialization.XmlIgnoreAttribute()]

    segunda-feira, 26 de novembro de 2012 18:31
  • Pode postar seu código?

     [WebMethod]
        public List<Dica> ListaDicas()
        {

     using (db banco = new db())
            {


                var listaD = (from dicas in banco.Dicas.Include("DicaImagems")
                              select dicas).ToList();


                 return  listaD;
            }

    }

    O problema é que o EF vem por padrão com Lazy Load. Para pegar os dados da tabela B vc precisa indica-los na query, ou desabilitar o Lazy Load

    Twitter: @MayogaX
    Blog: Dev Blog

    Ele está incluindo na consulta.
    segunda-feira, 26 de novembro de 2012 18:32
  • DicaImagens não esta com algum atributo do tipo NonSerializable?

    Esta desta forma

     [global::System.Data.Objects.DataClasses.EdmRelationshipNavigationPropertyAttribute("v2elseveModel", "fk_DicaImagem_Dica", "DicaImagem")]
            [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
            [global::System.Xml.Serialization.XmlIgnoreAttribute()]
            [global::System.Xml.Serialization.SoapIgnoreAttribute()]
            [global::System.Runtime.Serialization.DataMemberAttribute()]
            public global::System.Data.Objects.DataClasses.EntityCollection<DicaImagem> DicaImagems
            {
                get
                {
                    return ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedCollection<DicaImagem>("v2elseveModel.fk_DicaImagem_Dica", "DicaImagem");
                }
                set
                {
                    if ((value != null))
                    {
                        ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.InitializeRelatedCollection<DicaImagem>("v2elseveModel.fk_DicaImagem_Dica", "DicaImagem", value);
                    }
                }
            }

     [global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="v2elseveModel", Name="DicaImagem")]
        [global::System.Runtime.Serialization.DataContractAttribute(IsReference=true)]
        [global::System.Serializable()]
        public partial class DicaImagem : global::System.Data.Objects.DataClasses.EntityObject
        {}

    //tabela link

    [global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="v2elseveModel", Name="TipoConteudo")]
        [global::System.Runtime.Serialization.DataContractAttribute(IsReference=true)]
        [global::System.Serializable()]
        public partial class TipoConteudo : global::System.Data.Objects.DataClasses.EntityObject
        {}

    O estranho é que traz as informações porém não aparece no retorno xml do ws.

    Coloquei desta forma e rolou ! \0/

      [global::System.Data.Objects.DataClasses.EdmRelationshipNavigationPropertyAttribute("v2elseveModel", "fk_DicaImagem_Dica", "DicaImagem")]
            [global::System.Runtime.Serialization.DataMemberAttribute()]
            [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
            //[global::System.Xml.Serialization.XmlIgnoreAttribute()]
            //[global::System.Xml.Serialization.SoapIgnoreAttribute()]
            //[global::System.Runtime.Serialization.DataMemberAttribute()]

    • Marcado como Resposta Romy Moura segunda-feira, 26 de novembro de 2012 18:38
    segunda-feira, 26 de novembro de 2012 18:37