Closed Mat3oo closed 3 years ago
Hello @Mat3oo ,
Is there a reason why you don't create the list outside of the LINQ query and check in the LINQ if the list contains it?
Such as:
var list = new List<int> { 1, 2, 3, 4};
DbSet<Element>
.Where(e => e.Name == "test")
.Where(e => e.Active)
.Where(e => list.Contains(e.Id));
Best Regards,
Jon
I'm using urs Execute method:
var list = new List<int> { 1, 2, 3, 4};
DbSet<Element>
.Execute<object>(
"Where(e => e.Name == \"test\")" +
"Where(e => e.Active)" +
"Where(e => list.Contains(e.Id))");
and in this case it's not possible for string to know about list. In the repo from first comment is nice example.
*Missclick Close issue
You can pass it in parameter such as:
var list = new List<int> { 1, 2, 3, 4};
DbSet<Element>
.Execute<object>(
"Where(e => e.Name == \"test\")" +
"Where(e => e.Active)" +
"Where(e => list.Contains(e.Id))", new { list });
You can pass it in parameter
I know, but not the case for me. I passing string between services, so I would like to use new [] {}
inplace.
Hello @Mat3oo ,
Just to let you know that we continue to work on both issues.
We made some progression last week and find out why this happening (due to a convert on our side for using the Contains
method).
Everything work without EF since this CAST
doesn't cause any problem. However, in EF, this additional CAST
cannot be translated in SQL which throw the error.
Hello @Mat3oo ,
A new version has been released today.
We fixed this issue and the C# Eval Library will no longer try to CAST
the array into IEnumerable
which was causing the error in Entity Framework.
Let me know if everything works as expected.
Best Regards,
Jon
It's seems with Z.Expressions.Eval v4.0.18 the problem new []
is resolved, and also #59 working now as expected, gj 👍🏼.
Great Mat3oo!
Don't hesitate to contact me for further assistance.
Best regards,
Jon
With this expressions string passed into Execute extension method:
library loses the
new
keyword and replace it with(IEnumerable<int>)
cast, so causing exception.Example repo (newArray branch) replicating the problem.
Exception details: