public static IQueryable DeserializeQuery(this DataContext dc, XElement rootXml) { DLinqSerializationTypeResolver resolver = new DLinqSerializationTypeResolver(dc); DLinqCustomExpressionXmlConverter customConverter = new DLinqCustomExpressionXmlConverter(dc, resolver); ExpressionSerializer serializer = new ExpressionSerializer(resolver) { Converters = { customConverter } }; Expression queryExpr = serializer.Deserialize(rootXml); // Query kind is populated by the ResolveXmlFromExpression method if (customConverter.QueryKind == null) throw new Exception(string.Format("CAnnot deserialize into DLinq query for datacontext {0} - no Table found", dc)); return customConverter.QueryKind.Provider.CreateQuery(queryExpr); }
public static IQueryable DeserializeQuery(this DataContext dc, XElement rootXml) { DLinqSerializationTypeResolver resolver = new DLinqSerializationTypeResolver(dc); DLinqCustomExpressionXmlConverter customConverter = new DLinqCustomExpressionXmlConverter(dc, resolver); ExpressionSerializer serializer = new ExpressionSerializer(resolver) { Converters = { customConverter } }; Expression queryExpr = serializer.Deserialize(rootXml); // Query kind is populated by the ResolveXmlFromExpression method if (customConverter.QueryKind == null) { throw new Exception(string.Format("CAnnot deserialize into DLinq query for datacontext {0} - no Table found", dc)); } return(customConverter.QueryKind.Provider.CreateQuery(queryExpr)); }