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

前端之家收集整理的这篇文章主要介绍了asp.net – 如何序列化LINQ-to-SQL惰性列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 linq查询,我试图把它放入一个可序列化的对象,用于分布式缓存(Velocity)但由于LINQ-to-sql惰性列表而失败

像这样

  1. return from b in _datacontext.MemberBlogs
  2. let cats = GetBlogCategories(b.MemberBlogID)
  3. select new MemberBlogs
  4. {
  5. MemberBlogID = b.MemberBlogID,MemberID = b.MemberID,BlogTitle = b.BlogTitle,BlogURL = b.BlogURL,BlogUsername = b.BlogUsername,BlogPassword = b.BlogPassword,Categories = new LazyList<MemberBlogCategories>(cats)
  6. };

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

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

解决方法

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

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

猜你在找的asp.Net相关文章