asp.net – 如何序列化LINQ-to-SQL惰性列表

我有一个 linq查询,我试图把它放入一个可序列化的对象,用于分布式缓存(Velocity)但由于LINQ-to-SQL惰性列表而失败 像这样 return from b in _datacontext.MemberBlogs let cats = GetBlogCategories(b.MemberBlogID) sel

我有一个
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)
                   };

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

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

解决方法

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

(from x select new MemberBlogs).ToList()

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

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部