SQL - HighlightIf vs Highlight ?
Options
Hello,
Would someone please point out why HighlightIf fails below?
Ken
Would someone please point out why HighlightIf fails below?
( from x in // ensure a list of non-null first names ( from y in Users .Where (y => y.FirstName.Length>0) select y.FirstName ) .Take(9) select new { // works fine: // FirstName=Util.Highlight(x) // fails: "Object reference not set to an instance of an object" FirstName=Util.HighlightIf(x, a => a.Contains("a")) } )Thanks in advance,
Ken
Comments
-
Apparently the provider is able to infer Highlight is a local method but trips on HighlightIf. Maybe it's the predicate. Not sure but adding AsEnumerable() fixes it:
(from x in (from y in Users .Where (y => y.FirstName.Length>0) select y.FirstName) .Take(9) .AsEnumerable() select new { FirstName = Util.HighlightIf(x, a => a.Contains("a")) } )
You might consider fluent syntax:Users .Where(a => a.FirstName.Length > 0) .Select(a => a.FirstName) .Take(9) .AsEnumerable() .Select(a => Util.HighlightIf(a, b => b.Contains("a"))
-
Yes, it's most likely the predicate. AsEnumerable is a good workaround.
-
Thank you Sorax and Joe!
I like fluent syntax, but was using (let) query variables in the larger query this snippet came from.