簡體   English   中英

如何以流暢的語法編寫此LINQ查詢?

[英]How do I write this LINQ query in fluent syntax?

我有一個'GetTransactions'方法返回一個類型的對象:

IList<ApplicationTransaction>

這是一個ApplicationTransaction:

public partial class ApplicationTransaction
{
    public int TransactionId { get; set; }
    public int ApplicationId { get; set; }
    public string Event { get; set; }
    public System.DateTime CreatedOn { get; set; }

    public virtual Application Application { get; set; }
}

如何轉換此LINQ查詢:

return (from t in GetTransactions().OfType<ApplicationTransaction>()
        where t.Event == transactionType.ToString()
        select t).FirstOrDefault();

進入流暢的語法?

這不起作用 - 我不理解什么?

return GetTransactions().OfType<ApplicationTransaction>().Where(t.Event == transactionType.ToString().FirstOrDefault();

你需要在where語句中使用lambda的參數:

return GetTransactions()
    .OfType<ApplicationTransaction>()
    .Where(t => t.Event == transactionType.ToString())
    .FirstOrDefault();

(注意t => part,其中定義了一個新的表達式范圍,而不是直接嘗試訪問變量“t”)

如果您選擇整個實體,則不需要單獨選擇。

我還建議使用我在答案中使用的多行布局來更好地理解查詢並捕獲潛在的問題,例如@nvoigt提到的缺失括號問題。

暫無
暫無

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

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