如何使用entity framework的Find方法查找List ,将Array作为参数传递?

我想知道如何使用Entity Framework的Find方法将Array( object[] )作为参数找到List

我想通过Primary Key查找所有数据。

我首先填写一个列表,其中包含我将用作参考的所有PK:

 List lCodigoServicos = new List(); foreach (ServicosSelecionadosModelView servicoSelecionado in lServicos.FindAll(s => !string.IsNullOrEmpty(s.selecionado) && s.selecionado.ToLower() == "on" )) lCodigoServicos.Add(servicoSelecionado.servico.SerId); 

在填写我的PK列表后,我尝试通过PK查找所有数据

 var lServicosInformados = db.Servicos.Find(lCodigoServicos.ToArray()); 

当我尝试这个时,我收到以下错误:

 The specified parameter type 'System.Int32[]' is not valid. Only scalar types, such as System.Int32, System.Decimal, System.DateTime, and System.Guid, are supported. 

请与我们分享如何正确地做到这一点。 谢谢。

解决方案如下所述,正确的解决方案是:

 var lServicosInformados = db.Servicos.Where(x => lCodigoServicos.Contains(x.PKId)); 

您正在寻找Contains查询 :

 var lServicosInformados = db.Servicos.Where(x => lCodigoServicos.Contains(x.PKId)); 

假设PKId是主id列的名称(您没有指定名称)。