У меня такой запрос:
var q =
from u in db.User
select new
{
userId = u.UserId,
userName = o.Name,
userAvatar = o.AvatarCode
};
Затем я должен преобразовать AvatarCode в AvatarPath , используя пользовательский статический метод Image.GetPath.
Это можно сделать следующим образом:
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))
};