I have the following LINQ to entities query (using odp.net):
Dim query = from Elemento in X.VIEW
where Elemento.code = "10"
Select New With {Elemento.code, .Time = Elemento.Time.ToString("HH:mm")}
query.ToList()
And the code throws an exception on the ToList() method:
LINQ to Entities does not recognize the method 'System.String ToString()'
I've read all over SO about this but haven't found an easy workaround.
Lazyberezovsky has the right answer, I couldn't get it to work before because I was doing this:
Dim query = (from Elemento in X.VIEW
where Elemento.code = "10"
Select New With {Elemento.code, Elemento.Time}).ToList
Dim query2 = from elemento in query
Select New With {elemento.code, TIME = elemento.Time.ToString("HH:mm")}
Dim result = query2.ToList()
But this doesn't work, apparently you have to do it in a single step.
You can convert DateTime to string in-memory. Just make ToList call before converting time:
In C#:
var query = from Elemento in X.VIEW
where Elemento.code == "10"
select new { Elemento.code, Elemento.Time };
var result = query.ToList() // now you are in-memory
.Select(x => new { x.code, Time = x.Time.ToString("HH:mm") });
In VB.Net:
Dim query = From Elemento In X.VIEW
Where Elemento.code = "10"
Select New With {Elemento.code, Elemento.Time}
Dim result = query.ToList() _
.Select(Function(x) New With {x.code, .Time = x.Time.ToString("HH:mm")})
BTW Why are you selecting Elemento.code into result, if you are filtering by it in where operator (it will always be equal to "10").
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With