Comments (3)
Did you find a solution for this? I get this error when serializing an expression with an StringComparison enum in it.
Edit: I found the solution. There is an AddKnownType method in every serializer.
from serialize.linq.
I have also tried a simple type with the DataContract
attribute. But adding the [Datacontract]
attribute to all our models are not an option if that was the requirement.
** Simple Type **
[DataContract]
public class OutputChannelLogTest
{
public string CreatedBy { get; set; }
public string Channel { get; set; }
}
Updated Test
[Test]
public void CreateQuery_GivenExpression_ShouldGenerateReport()
{
// arrange
Setup();
var emptyList = new List<OutputChannelLogTest>().AsQueryable();
var query = emptyList.Where(x => x.Channel == "Email");
var expression = query.Expression;
var settings = new FactorySettings(){UseRelaxedTypeNames = true};
var expressionSerializer = new ExpressionSerializer(new JsonSerializer(), settings);
var expressionText = expressionSerializer.SerializeText(expression);
Console.WriteLine(@$"Expression: {expression}");
Console.WriteLine(@$"ExpressionText: {expressionText}");
var dbItems = Builder<OutputChannelLogTest>
.CreateListOfSize(4)
.TheFirst(2)
.With(x => x.Channel = "Sms")
.TheNext(2)
.With(x => x.Channel = "Email")
.Build();
var dbQuery = dbItems.AsQueryable();
// action
var reportItems = dbQuery.Provider.CreateQuery<OutputChannelLogTest>(
expressionSerializer.DeserializeText(expressionText));
// assert
reportItems.Count().Should().Be(2);
}
from serialize.linq.
I did not. I reverted to getting the actual query from the provider, in my case MongoDB. Then I recreate the IQueryable from the actual query and work with the result.
Look at Remote.Linq. I came close to solving the problem with that package, but still not all the permutations.
from serialize.linq.
Related Issues (20)
- bug when using expressions that contain dynamic HOT 1
- Question on LambdaExpression serialization HOT 1
- .net 5.0 problem HOT 2
- Serialize expression when it is a property of a class? HOT 2
- Cannot Serialize Expression Converted From Func HOT 3
- How to Revice Post arguments in core 3.1
- Change of License HOT 6
- Expression.Default not supported in serialization HOT 2
- Question about deserialization security: HOT 1
- Need your help with other issue HOT 2
- "System.InvalidOperationException: Sequence contains no matching element" during SerializeText HOT 1
- Known type cannot be an interface
- Undefined variable error when using ToString in lambda expression HOT 2
- Deploy the latest build to NuGet HOT 3
- Serialize Linq Expression not working - Workaround / Suggestion HOT 2
- Target framework net standard 2.0 & 2.1 HOT 3
- Changes from 2.x to 3.x HOT 2
- Error when serializing an expression with nested method calls
- Method serialization issue
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from serialize.linq.