【问题标题】:Avoid "Parameterless Queries Error" with Linq Let clause使用 Linq Let 子句避免“无参数查询错误”
【发布时间】:2013-04-10 06:03:40
【问题描述】:

我希望我的 Linq 查询能够在结果中动态创建一个附加列。在这种情况下,该列是我创建的包含图像信息的类对象。我想知道这样做的正确方法是什么:

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 行产生错误:

LINQ to Entities 仅支持无参数构造函数和初始化程序。

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

【问题讨论】:

    标签: linq


    【解决方案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();
    

    【讨论】:

    • 我会试一试,我是新手,但我相信它会奏效。谢谢。
    • 但是所有其他列呢?我不打算将它们放在我的 CarShowImages 对象中。我不能只将对象添加到 linq 结果中吗?
    • @Dave 是的,您可以创建新的匿名对象并返回它:select new { Image = new CarShowImages { PicName = x.picname }, Tags = x, OtherProperty = x.other }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多