如何在列表中执行此操作(user.image = plugins.LoadImage(user.Image))
LoadImage是一种以BitmapImage形式返回图像的函数
var query = (
from user in chatDBContext.tbl_User
select new
{
user.FirstName, user.LastName, user.Gender, user.Email,
user.DoB, user.Address, user.City, user.State,user.Country,
user.Quote, user.username, (user.image = plugins.LoadImage(user.Image))
}
).ToList();
考虑到这plugins.LoadImage(user.Image))
不能在linq2sql(也不是EntityFramework)上下文中执行。
因此:首先执行查询,获取内存中的对象(您可以通过调用.ToList()
或.ToArray()
例如执行此操作),然后检索图像。
// database oriented query
var query = from user in chatDBContext.tbl_User
select user;
// take objects in memory THEN retrieve images
var objects = query.ToList().Select(user => new
{
user.FirstName, user.LastName, user.Gender, user.Email,
user.DoB, user.Address, user.City, user.State,
user.Quote, user.username, image = plugins.LoadImage(user.Image)
});
考虑到您可以避免重复所有user
字段,而只需选择整个对象而不是所有单个属性即可:
var objects = query.ToList().Select(user => new
{
user, image = plugins.LoadImage(user.Image))
});
用法:
foreach (var obj in objects)
{
Console.WriteLine(obj.user.FirstName);
Console.WriteLine(obj.user.LastName);
// and so on all user properties
Console.WriteLine(obj.image.Height); // just example
}
编辑(澄清)
在您的源代码中,存在两个不同的问题:
user.image
属性(无论如何,我也不知道image
您的User
类中是否有任何属性):您无法对匿名对象构造函数进行赋值。相反,像我的示例或其他答案示例一样,您应该image
在匿名对象初始化程序中声明一个属性。new { user.image = plugins.LoadImage(user.Image) }
应该成为
new { image = plugins.LoadImage(user.Image) }
Convert.ToInt32()
,.ToString()
等本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句