【问题标题】:Problem getting GUID string value in Linq-To-Entity query在 Linq-To-Entity 查询中获取 GUID 字符串值的问题
【发布时间】:2009-11-19 18:18:33
【问题描述】:

我正在尝试将 GUID 值写入 linq 选择中的字符串。代码如下所示(其中 c.ID 为 GUID),但出现以下错误:

无法将类型“System.Guid”转换为类型“System.Object”。 LINQ to Entities 仅支持转换实体数据模型基元类型。

var media = (
                from media in Current.Context.MediaSet
                orderby media.CreatedDate
                select new Item
                {
                    Link = "~/Media.aspx?id=" + media.ID,
                    Text = "Media",
                    Time = media.CreatedDate
                }
            ).ToList();

【问题讨论】:

    标签: linq-to-entities guid tostring


    【解决方案1】:

    一种方法是将查询分解为 L2E 和 L2O:

    var q = from media in Current.Context.MediaSet
            orderby media.CreatedDate
            select new
            {
                Id = media.ID,
                Time = media.CreatedTime
            };
    var media = (
                    from m in q.AsEnumerable()
                    select new Item
                    {
                        Link = "~/Media.aspx?id=" + q.Id.ToString,
                        Text = "Media",
                        Time = q.Time
                    }
                ).ToList();
    

    【讨论】:

    • 谢谢。这就像一个魅力。可惜他们没有更简单的方法来获取 GUID 的字符串值。
    • 这很棒!感谢您的洞察力。比起求助于SqlFunctions.StringConvert,我更喜欢这种方式,因为它只适用于数字。
    猜你喜欢
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多