簡體   English   中英

如何將linq查詢轉換為具有lambda表達式的擴展方法鏈?

[英]How do I translate a linq query to an extension method chain with lambda expressions?

我正在使用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;
        }

我不想返回實體類型,而是返回自定義類型

這就是使用擴展方法編寫的方式,但是您實際上不必擔心,因為它們都是同一件事。

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();

一個有趣的旁注:我本可以在Where使用d=> ,然后在Select使用e=> 而d在整個詞組中向下傳播。 重置它的唯一方法是使用let短語 這與直接問題無關,但我只是認為這很有趣,並想指出一點:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM