我有一个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(cats) };
LazyList与Rob Conery在他的MVC店面中使用的是同一类...
所有三个类都标记为可序列化(MemberBlogs,MemberBlogCategories,LazyList ...任何想法?
如果要将其放在分布式缓存中,则需要完全避免使用LazyList.然后,您可以在整个LINQ语句周围调用.ToList(),如下所示:
(from x select new MemberBlogs).ToList()
这应该是可缓存的,因为它会强制评估查询.