根據下面描述的sql,我需要傳遞一個列舉串列,并僅獲取具有與列舉串列中的欄位等效的“Application”欄位的記錄:
select * from "FormaContato" as "fc"
inner join "FormaContatoAplicacao" as "fca" ON "fc"."Id" = "fca"."FormaContatoId"
where "fca"."AplicacaoId" in (2, 1, ...)
public enum AplicacaoEnum
{
[Description("PESSOA FíSICA")]
Nenhum = 1,
[Description("PESSOA JURíDICA")]
ContatoTelefonico = 2
}
public IQueryable<FormaContato> GetAllByAplicacao(List<AplicacaoEnum> aplicacaoList = null)
{
var data = DbSet.
Include(x => x.FormaContatoAplicacoes)
.Where(x=> x.FormaContatoAplicacoes.Aplicacao == aplicacaoList ????????? Here.)
.AsNoTracking();
return data;
}
這該怎么做?謝謝!:)
uj5u.com熱心網友回復:
看來您正在尋找該.Contains()方法。
所以在你的情況下,它會是這樣的:
var data = DbSet
.Include(x => x.FormaContatoAplicacoes)
.Where(x=> aplicacaoList.Contains(x.FormaContatoAplicacoes.Aplicacao))
.AsNoTracking();
另請注意,如果您不打算FormaContatoAplicacoes在以后的流程中使用,我認為沒有理由使用.Include()此處。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/335661.html
