我们正在尝试序列化一些数据,集合中的一个项目是“延迟执行linq语句”(实际上它是对集合进行Concat调用的结果)。
问题是如何坚持该对象。它不支持ISerializable。实际类型与System.Linq.Enumerable.WhereSelectListIterator<>
一致。只是想知道是否有人之前遇到过此问题,解决方案是什么。
答案 0 :(得分:2)
您可以在Linq声明中调用ToList()
;这将收集所有结果并将其返回List<T>
,然后您可以序列化。
答案 1 :(得分:1)
如果查询结果并序列化它们不是一个选项,则必须以某种方式手动序列化查询。
一个问题是有太多不同的LINQ查询对象类型。所有这些类型都是框架内部的。这几乎把你锁定了。
虽然可能有针对您具体案例的解决方案。如果您需要序列化的唯一类型的查询是Concat
调用的结果,则解决方案可能不会太复杂。所有这些都取决于您连接的集合以及您(或想要)序列化它们的方式。