簡體   English   中英

使用實體框架將LINQ語句重構為方法

[英]Refactoring LINQ statement using Entity Framework to a method

我在代碼中多次使用了這些Linq查詢。 我想對它們做一個方法並返回結果。

var myevent = (from v in myEntities.Events
                           where _EventID == v.EventID
                           select v).SingleOrDefault();

var comments = (from c in myEntities.Fora
                            orderby c.DateCreated descending
                            where c.EventID == _EventID
                            select c).ToList();

您的問題不是很清楚,但是聽起來您只需要兩個方法即可返回linq查詢的結果。

public Events GetEvent(int id)
{
    return (from v in myEntities.Events
           where _EventID == id
           select v).SingleOrDefault();
}

public List<Fora> GetComments(int id)
{
     return (from c in myEntities.Fora
             orderby c.DateCreated descending
             where c.EventID == id
             select c).ToList();
}

您的問題有太多未知數,無法具體回答,這是SO所特有的。

我將假設您的實體是數據庫支持的。

您需要了解交易范圍。 您可以將單獨的類與靜態“ myEntities”一起使用,並實現為上面的Anonymous。 但是,如果調用了不同的線程,則可能會導致嵌套事務。 您也不想每次都建立一個新的連接。

我會將其實現為更廣泛的數據訪問層的一部分,並將您的連接作為構造函數的一部分傳遞給它。 如果選擇使用靜態方法,則應將連接作為參數之一傳遞。

或者,您可以使用這種邏輯創建一個抽象類,並讓子類實現它。

暫無
暫無

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

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