[CSHARP-3266] Predicate translator doesnt support string.Equals with StringComparison argument Created: 24/Nov/20 Updated: 11/Nov/22 Resolved: 11/Nov/22 |
|
| Status: | Closed |
| Project: | C# Driver |
| Component/s: | Linq |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Alexey N/A | Assignee: | Robert Stam |
| Resolution: | Duplicate | Votes: | 1 |
| Labels: | linq, linq,query | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Description |
|
Hi, I from the nopCommerce team, and we want to add support MongoDB but really can't do it now because the Linq component has bugs, and it isn't flexible at all. Predicate translator doesn't support string.Equals with StringComparison argument
|
| Comments |
| Comment by Robert Stam [ 11/Nov/22 ] |
|
This will be fixed by 4119. |
| Comment by James Kovacs [ 10/Sep/21 ] |
|
Hi, Alexey and Sasan, Thank you for your patience and continued interest. LINQ3 is currently in code review and we plan to include it in the next release of the driver. Sincerely, |
| Comment by Sasan Pasha [ 10/Sep/21 ] |
|
hi @Dimitry do you have any ETA for the LINQ3 release? |
| Comment by Dmitry Lukyanov (Inactive) [ 31/Aug/21 ] |
|
Hey alexey.a@nopcommerce.com , we're still working on LINQ3 (new LINQ implementation) and will check this behavior there. |
| Comment by Alexey Anohin [ 30/Aug/21 ] |
|
Do you have any updates? |
| Comment by Alexey N/A [ 25/Nov/20 ] |
|
Thank you, James! Do you have any approximate dates for the release of a new LINQ translator? Can I help contribute to this? |
| Comment by James Kovacs [ 24/Nov/20 ] |
|
Hi, Alexey, Thank you for reporting this issue and submitting a PR to resolve this issue. Reviewing the PR, it is not always correct to translate InvariantCultureIgnoreCase and OrdinalIgnoreCase to /^<<STRING>>$/i. This is due to the classic Turkish i problem. In certain non-English languages such as Turkish, casing rules are different. For example in Turkish, "I" is not the capital form of "i", "İ" is. Similarly the lowercase of "I" is "ı" (i without a dot). To correctly handle ordinal versus invariant cultures, you must use a supporting index with a collation. We are currently working on a new implementation of our LINQ translator and will consider better StringComparison support in the context of that work. Sincerely, |