2
一個自定義的方法我有這樣的查詢:在調用LINQ查詢
var q =
from u in db.User
select new
{
userId = u.UserId,
userName = o.Name,
userAvatar = o.AvatarCode
};
然後,我不得不改變AvatarCode使用自定義靜態方法Image.GetPath到AvatarPath。
這有可能使這個以下列方式:
var q =
(from u in db.User
select new
{
userId = u.UserId,
userName = o.Name,
userAvatar = o.AvatarCode
})
.AsEnumerable()
.Select(new
{
userId = u.UserId,
userName = o.Name,
userAvatar = Image.GetPath(o.AvatarCode)
};
但如果對象的字段的數量較大,則它是一個矯枉過正複製所有領域在第二選擇。
有沒有其他的選擇?
例如,一些方法來標記應該查詢執行之後被執行的方法:
var q =
from u in db.User
select new
{
userId = u.UserId,
userName = o.Name,
userAvatar = Linq.ExecuteLater(Image.GetPath(o.AvatarCode))
};
你的代碼示例看起來不是邏輯。 1)你的第一個'select'中的'o'是什麼? 2)爲什麼在第二個「選擇」中重複引用'u'和'o',甚至沒有引用當前的收集元素。所以你的第二個選擇應該是這樣的:'Select(i => new {userId = i.userId})'等等 – Genius 2011-05-23 08:32:57