[英]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.