I'm finding that QueryFilter prefixClause "DISTINCT" is non-functional in the SDK and must use a workaround:
QueryFilter filter <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">QueryFilter</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">//PrefixClause = "DISTINCT", //DISTINCT does not work in this query. See workaround below.</SPAN>
SubFields <SPAN class="operator token">=</SPAN> <SPAN class="string token">"FY"</SPAN><SPAN class="punctuation token">,</SPAN>
WhereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"FY IS NOT NULL AND FY <> '-9' AND FY <> ' '"</SPAN><SPAN class="punctuation token">,</SPAN>
PostfixClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"ORDER BY FY"</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">using</SPAN> <SPAN class="punctuation token">(</SPAN>RowCursor rowCursor <SPAN class="operator token">=</SPAN> sso_lyr<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Search</SPAN><SPAN class="punctuation token">(</SPAN>filter<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">int</SPAN> fldIndex <SPAN class="operator token">=</SPAN> rowCursor<SPAN class="punctuation token">.</SPAN><SPAN class="token function">FindField</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"FY"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
List<SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN> valuelist <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">List</SPAN><SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">while</SPAN> <SPAN class="punctuation token">(</SPAN>rowCursor<SPAN class="punctuation token">.</SPAN><SPAN class="token function">MoveNext</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">string</SPAN> <SPAN class="keyword token">value</SPAN> <SPAN class="operator token">=</SPAN> rowCursor<SPAN class="punctuation token">.</SPAN>Current<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetOriginalValue</SPAN><SPAN class="punctuation token">(</SPAN>fldIndex<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> <SPAN class="keyword token">string</SPAN><SPAN class="punctuation token">;</SPAN>
valuelist<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Add</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">value</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
IEnumerable<SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN> distinctvaluelist <SPAN class="operator token">=</SPAN> valuelist<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Select</SPAN><SPAN class="punctuation token">(</SPAN>x <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN> x<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">Distinct</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="comment token">//distinct from list b/c DISTINCT prefixclause non-functional above.</SPAN>
<SPAN class="keyword token">foreach</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">string</SPAN> item <SPAN class="keyword token">in</SPAN> distinctvaluelist<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="token function">Invoke</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">MethodInvoker</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">delegate</SPAN> <SPAN class="punctuation token">{</SPAN> Sso_combo<SPAN class="punctuation token">.</SPAN>Items<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Add</SPAN><SPAN class="punctuation token">(</SPAN>item<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>This is okay for very short lists of values, but not for 100,000 records; which is the requirement.
Has anyone else encountered this? I'm using documentation from this source:
https://github.com/esri/arcgis-pro-sdk/wiki/ProConcepts-Geodatabase
Word find: "distinct" on the page...