我有一个linq查询,我试图将其放入可序列化的对象中进行分布式缓存(速度),但是由于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()
这应该是可实现的,因为它会强制对查询进行评估。