我如何使用lazy loading = true定义我的模型

时间:2013-10-31 12:46:22

标签: asp.net-mvc-4 entity-framework-4 lazy-loading foreign-key-relationship

我如何在MVC 4中使用lazyloading = true定义我的模型?我正在尝试加载我的外键。现在我的查询变为空。在我的web api查询中是正确的。

我没有使用“虚拟”。

我的模特:

    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int intClienteFornecedorId { get; set; }

    [MaxLength(50)]
    [Display(Name = "Nome:")]
    [UniqueClienteFornecedorNome(ErrorMessage = "Já existe um Cliente ou Fornecedor cadastrado com esse Nome.")]
    [Required(ErrorMessage = "É obrigatório informar o Nome.")]
    public string strClienteFornecedorNome { get; set; }

    [MaxLength(2)]
    [Display(Name = "Pessoa:")]
    public string strClienteFornecedorPessoa{ get; set; }

    [ForeignKey("Estado")]
    [Display(Name = "Estado:")]
    public string strUFId { get; set; }
    public virtual Estado Estado { get; set; }

    [MaxLength(9)]
    [Display(Name = "CEP:")]
    public string strClienteFornecedorCEP { get; set; }

    [MaxLength(70)]
    [Display(Name = "Site:")]
    public string strClienteFornecedorSite { get; set; }

    [MaxLength(250)]
    [Display(Name = "Observação:")]
    public string strClienteFornecedorObservacao { get; set; }

    [MaxLength(1)]
    [Display(Name = "Situação:")]
    public string strClienteFornecedorSituacao { get; set; }

    [ForeignKey("Usuario")]
    public int intUsuarioId { get; set; }
    public virtual Usuario Usuario { get; set; }

    public DateTime? dtClienteFornecedorDataAlteracao { get; set; }

    public DateTime? dtClienteFornecedorDataCriacao { get; set; }

    [NotMapped]
    public bool ckbClienteFornecedor { get; set; }

    [NotMapped]
    public bool? hdMaisInformacoes { get; set; }

    [NotMapped]
    public bool? hdObservacao { get; set; }

    public virtual ICollection<Contato> Contatos { get; set; }

    public virtual ICollection<ClienteFornecedor_Contato> ClienteFornecedoresContatos { get; set; }

WEB API:

              [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
    public List<ClienteFornecedor> GetClientesFornecedoresByintUsuarioId(int intUsuarioId)
    {
        //Validate Input
        if (intUsuarioId.IsEmpty())
            return GetAllClienteFornecedor();

        _DatabaseContext.ContextOptions.LazyLoadingEnabled = false;

        return (from clienteFornecedor in _DatabaseContext.ClienteFornecedor
                where clienteFornecedor.intUsuarioId == intUsuarioId
                select clienteFornecedor).Include("Usuario").Include("UF").OrderBy(c => c.strClienteFornecedorNome).ToList();
    }

在web api中返回两条记录,但在我的web应用程序中,第二条记录返回null为什么?

Application

有人可以帮我吗?

第二条记录为空,有人知道为什么吗?

JSON:

    [{"$id":"1","intClienteFornecedorId":8,"strClienteFornecedorNome":"CPFL","strClienteFornecedorPessoa":"PJ","strClienteFornecedorCPF":null,"strClienteFornecedorCNPJ":"11.111.111/1111-11","strClienteFornecedorTelefone":null,"strClienteFornecedorTelefone2":null,"strClienteFornecedorEmail":null,"strClienteFornecedorEndereco":null,"strClienteFornecedorComplemento":null,"strClienteFornecedorBairro":null,"strClienteFornecedorCidade":"SP","strUFId":"SP","strClienteFornecedorCEP":null,"strClienteFornecedorSite":null,"strClienteFornecedorObservacao":null,"strClienteFornecedorSituacao":"A","intUsuarioId":1,"dtClienteFornecedorDataAlteracao":"2013-10-30T11:29:33.303","dtClienteFornecedorDataCriacao":"2013-10-30T11:29:33.303","Categoria":[],"UF":{"$id":"2","strUFId":"SP","strUFNome":"São Paulo","Contato":[],"ClienteFornecedor":[{"$ref":"1"}],"EntityKey":{"$id":"3","EntitySetName":"UF","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"strUFId","Type":"System.String","Value":"SP"}]}},"Usuario":{"$id":"4","intUsuarioId":1,"strUsuarioNome":"Danielle Ramos Tonhai","strUsuarioEmail":"danielle.ramos@unidax.com.br","strUsuarioSenha":"12345678","strUsuarioAdministrador":"S","strUsuarioSituacao":"A","intUsuarioPaiId":0,"dtUsuarioDataAlteracao":"2013-10-28T15:16:28.233","dtUsuarioDataCriacao":"2013-10-24T16:42:26","bitUsuarioConfirmado":true,"CartaoCredito":[],"Categoria":[],"ContaBancaria":[],"ContaContabil":[],"Contato":[],"Entidade":[],"Evento":[],"FormaPagamento":[],"ClienteFornecedor":[{"$ref":"1"},{"$id":"5","intClienteFornecedorId":9,"strClienteFornecedorNome":"Danielle","strClienteFornecedorPessoa":"PF","strClienteFornecedorCPF":"111.111.111-11","strClienteFornecedorCNPJ":null,"strClienteFornecedorTelefone":null,"strClienteFornecedorTelefone2":null,"strClienteFornecedorEmail":null,"strClienteFornecedorEndereco":null,"strClienteFornecedorComplemento":null,"strClienteFornecedorBairro":null,"strClienteFornecedorCidade":null,"strUFId":null,"strClienteFornecedorCEP":null,"strClienteFornecedorSite":null,"strClienteFornecedorObservacao":null,"strClienteFornecedorSituacao":"A","intUsuarioId":1,"dtClienteFornecedorDataAlteracao":"2013-10-30T11:29:52.203","dtClienteFornecedorDataCriacao":"2013-10-30T11:29:52.203","Categoria":[],"UF":null,"Usuario":{"$ref":"4"},"Contato":[],"EntityKey":{"$id":"6","EntitySetName":"ClienteFornecedor","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intClienteFornecedorId","Type":"System.Int32","Value":"9"}]}}],"EntityKey":{"$id":"7","EntitySetName":"Usuario","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intUsuarioId","Type":"System.Int32","Value":"1"}]}},"Contato":[],"EntityKey":{"$id":"8","EntitySetName":"ClienteFornecedor","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intClienteFornecedorId","Type":"System.Int32","Value":"8"}]}},{"$ref":"5"}]

0 个答案:

没有答案