2013-04-17 80 views
1

我想让我的Linq查询在运行结果中创建一个额外的列。在这种情况下,该列是我创建的包含图像信息的Class对象。我想知道正确的方法是这样的内容:用Linq避免“无参数查询错误”Let子句

var validPics = (from x in db.picsVotesTagsJs let picObj = new CarShowImages(x.picname) where x.enabled == 1 select x).Take(25); 
var myArray = validPicSummaries.ToArray(); 

线2个gerenates错误:

只有参数构造函数初始化和LINQ中支持到实体。

这是我第一次使用Let子句。我的查询通常很简单。

回答

1

创建参数的构造函数,并使用一些公共财产(如PicName),以图片名称设置为您CarShowImages对象:

var validPics = (from x in db.picsVotesTagsJs 
       where x.enabled == 1 
       select new CarShowImages { PicName = x.picname }).Take(25); 
var myArray = validPics.ToArray(); 
+0

我给它一个尝试,我在班新的,但我敢肯定,它会工作。谢谢。 – Dave

+0

但是所有其他列呢?我不打算将它们放入我的CarShowImages对象中。我不能只是将对象添加到linq结果? – Dave

+1

@Dave是的,你可以创建一个新的匿名对象并返回它:'select new {Image = new CarShowImages {PicName = x.picname},Tags = x,OtherProperty = x.other}' –