Я не знаю, что я делаю не так с моим лямбда-выражением, кто-то может меня исправить? - PullRequest
0 голосов
/ 05 ноября 2018

Я использую FrameworkEntity и имею два класса:

public class InfoComplementarEmpresaModel
{
    public int idempresa { get; set; }

    [Key]
    public string idcomplemento { get; set; }

    public string idinformacao { get; set; }
    public string conteudocomplemento { get; set; }
    public string periodocomplemento { get; set; }
}

и

public class InfoComplementarModel
{
    public int idlayout { get; set; }

    [Key]
    public int idinformacao { get; set; }

    public string codigoinformacao { get; set; }
    public string descricaoinformacao { get; set; }
    public int tipoinformacao { get; set; }
}

Лямбда-соединение, которое я пытаюсь сделать, выглядит следующим образом:

public List<string> GetTipoENomeDeInformacaoComplementarEmpresa(string idDaEmpresa)
{
    List<string> listaDeTipos = new List<string>();
    int idDaEmpresaNoFormatocerto = Convert.ToInt32(idDaEmpresa);

    listaDeTipos.Add("Criar novo preenchimento de valores");

    var nomesDeInformacoes = db.InformacoesComplementaresDaEmpresa
        .Where(a => a.idempresa == idDaEmpresaNoFormatocerto)
        .Join(db.InformacoesComplementaresDoLayout,
            infocompempresa => new {infocompempresa.idinformacao},
            infocomplayout => new {infocomplayout.idinformacao},
            (ice, icl) => ice.idinformacao)
        .ToList();

    // some method that will put nomesDeInformacoes in listaDeTipos

    return listaDeTipos;
}

Соединение обвиняет: «Аргументы типа для метода Queryable.Join (IQueryable, IQueryable, Expression>, Expression>, Expression>) не могут быть выведены из использования. Попробуйте явно указать аргументы типа»

1 Ответ

0 голосов
/ 06 ноября 2018

Я выяснил это

были различные проблемы:

idinformacao в InfoComplementarEmpresaModel был строкой вместо int

Затем я обнаружил, что ВСЕ анонимные имена в соединении должны оставаться неизменными, в результате чего:

var nomesDeInformacoes = db.InformacoesComplementaresDaEmpresa.Where(a => a.idempresa == idDaEmpresaNoFormatocerto)
                                                                      .Join(db.InformacoesComplementaresDoLayout,
                                                                            ice => ice.idinformacao ,
                                                                            icl => icl.idinformacao ,
                                                                            (ice, icl) =>  new { ice, icl } )
                                                                      .Select(
                                                                      //creating a class to accept the fields i want  
                                                                      })
                                                                      .ToList();

Этот парень работает, возвращаясь в созданный им класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...