I have a query like this:
var q =
from u in db.User
select new
{
userId = u.UserId,
userName = o.Name,
userAvatar = o.AvatarCode
};
Then, I have to transform AvatarCode to AvatarPath using custom static method Image.GetPath.
It's possible to make this in the following way:
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)
};
But if the number of object fields is large then it's an overkill to duplicate all fields in the second Select.
Are there any alternatives?
For example, some approach to mark methods that should be executed after query execution:
var q =
from u in db.User
select new
{
userId = u.UserId,
userName = o.Name,
userAvatar = Linq.ExecuteLater(Image.GetPath(o.AvatarCode))
};
There is not any such method but if the problem is only number of fields which must be specified again in the second select you can do something like this: