如果我创建了如下所示的Linq语句,它可以正常工作。
var Jobs = from a in ctx.MyExport
select new
{
FileName = a.FilePath,
JobId = a.ID,
};
如果我想使用类而不是匿名类型,我会收到以下错误“无法将lambda表达式转换为类型'string',因为它不是委托类型”。
以下是我想要使用的代码:
var Jobs = from a in ctx.MyExport
select new MyClass
{
FileName = a.FilePath,
JobId = a.ID,
};
这是班级:
public class MyClass
{
public string FileName { get; set; }
public Guid JobId { get; set; }
}
谁能告诉我我做错了什么以及如何解决?
答案 0 :(得分:1)
上面的代码是正确的,因为您没有向我们展示的代码,您收到错误消息。
您正在尝试将非物质化查询分配给字符串变量,这将导致错误。 将类型更改为 IEnumerable 将立即实现查询,无论您是否使用它,它都将从数据库中取出。所以不推荐该解决方案。
答案是在使用前实现查询,我假设您正在对此集合执行 foreach ,因此 Jobs.AsEnumerable()或工作.ToList()(取决于你想用它做什么)是你应该做的。