簡體   English   中英

C#:從鍵獲取Linq對象

[英]C#: Get Linq Object From Key

我正在使用LINQ to SQL,我想知道這種語法是否有捷徑:

using (Model db = new Model())
{
    LinqObj l = db.LinqObj.Where(o => o.ID = id).Single();
}

我知道我可以創建一個返回LinqObj對象的靜態方法:

public static LinqObj FromID(int id)
{
    using (Model db = new Model())
    {
        return LinqObj l = db.LinqObj.Where(o => o.ID = id).Single();
    }
}

這讓我開始思考; 有沒有一種方法可以創建返回對象的構造函數:

LinqObj l = new LinqObj(ID: 7);

在LINQ to SQL對象中創建單行對象的最佳方法是什么?

您可以使用LINQ to SQL樣板的實用程序方法:

static T GetObject<T>(Func<Model, T> func)
{
   using(var db = new Model()) return func(db); 
}

然后執行以下操作:

var l = GetObject(db => db.LinqObj.Single(o => o.ID == id));

我認為最簡單的方法是創建方法來幫助創建或檢索所需的數據,例如靜態方法示例。 您可以擴展類並將邏輯放入構造函數中以進行一些檢索,但是我不確定這是一種干凈的方法。

出什么問題了:

dataContext.LinqObjs.Single(x => x.Id = 23);

它非常易讀,並且顯然可以正確地重用您現有的DataContext。 為您獲得的每個對象創建DataContext是一種不好的做法。 手動重新附加它們是很痛苦的,否則,您無法將一個對象添加到另一個對象的容器屬性中。

暫無
暫無

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

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