我正在使用LINQ to Entities,我想知道如何使用扩展方法将以下查询转换为lambda表达式。
public _Deposito RegresaDepositosBancarios(int id)
{
return (from d in context.depositos_bancarios
where d.IDDeposito == id
select new _Deposito
{
idDeposito = d.IDDeposito,
cantidad = d.Monto,
fecha = d.FechaDeposito,
aplicado = d.Aplicado
}).Single();
}
请注意,我正在返回_Deposito类型,如何使用扩展方法实现此目的?
我需要以下内容:
public Persona RegresaPersonaPorNombres(string nombres, string apellidoP, string apellidoM)
{
var p = context.personas.Where(x => x.Nombres == nombres &&
x.ApellidoP == apellidoP &&
x.ApellidoM == apellidoM).FirstOrDefault();
return p;
}
我不想返回实体类型,而是返回自定义类型
答案 0 :(得分:4)
这是用扩展方法编写的,但你真的不必担心,因为它们都是一样的。
return context.depositos_bancarios
.Where(d=>d.IDDeposito == id)
.Select(d=>new _Deposito
{
idDeposito = d.IDDeposito,
cantidad = d.Monto,
fecha = d.FechaDeposito,
aplicado = d.Aplicado
})
.Single();
一个有趣的旁注:我可以在d=>
中使用Where
,然后在e=>
中使用Select
。然而,d在整个短语中传播。重置它的唯一方法是使用let phrase。这与直接问题无关,但我认为它很有趣,并想指出:)