I'm using LINQ to Entities to fetch elements from a MSSQL data base and I need them sorted by the last index of a string:
var data = db.GetEntities().
OrderBy(e=>e.StringProperty.LastIndexOf("Foo")).ToList()
However, LINQ to Entities does not support LastIndexOf
. I've tried searching for similar questions but all I've found was this which does not address my issue (ordering). Searching on MSDN did not yield any results.
What would be the simplest way to accomplish this using LINQ to Entities (I don't want to have to do this after the ToList())
.
You could try
OrderBy(e => e.StringProperty.Length - EntityFunctions.Reverse(e.StringProperty).IndexOf("ooF"))
I think Reverse
and IndexOf
are supported.
Do the sorting using LINQ to Objects
var data = db.GetEntities()
.AsEnumerable()
.OrderBy(e => e.StringProperty.LastIndexOf("Foo"))
.ToList();
Using AsEnumerable
will allow you to retain deferred execution, it's the better compromise than calling ToList
and then performing the OrderBy
.
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