我如何序列化LINQ-to-SQL惰性列表

dsw*_*tik 6 asp.net asp.net-mvc serialization linq-to-sql

我有一个linq查询,我试图把它放入一个可序列化的对象,用于分布式缓存(Velocity)但由于LINQ-to-SQL惰性列表而失败

像这样

  return from b in _datacontext.MemberBlogs
                   let cats = GetBlogCategories(b.MemberBlogID)
                   select new MemberBlogs
                   {
                       MemberBlogID = b.MemberBlogID,
                       MemberID = b.MemberID,
                       BlogTitle = b.BlogTitle,
                       BlogURL = b.BlogURL,
                       BlogUsername = b.BlogUsername,
                       BlogPassword = b.BlogPassword,
                       Categories = new LazyList<MemberBlogCategories>(cats)
                   };
Run Code Online (Sandbox Code Playgroud)

LazyList与Rob Conery在他的MVC店面中使用的是同一类...

所有三个类都标记为可序列化(MemberBlogs,MemberBlogCategories,LazyList ...任何想法?

Dun*_*can 6

如果要将其放在分布式缓存中,则需要完全避免使用LazyList.然后,您可以在整个LINQ语句周围调用.ToList(),如下所示:

(from x select new MemberBlogs).ToList()
Run Code Online (Sandbox Code Playgroud)

这应该是可缓存的,因为它会强制评估查询.