1

linq select の文字列に GUID 値を書き込もうとしています。以下にコードを示します (c.ID は GUID です) が、次のエラーが表示されます。

タイプ 'System.Guid' をタイプ 'System.Object' にキャストできません。LINQ to Entities は、Entity Data Model プリミティブ型のキャストのみをサポートします。

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();
4

1 に答える 1

2

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();
于 2009-11-20T15:03:35.247 に答える