ここでstring productname2 = "xyz"が返されますが、実際にはPRODUCTNAMEのデータベースには "XYZ"ここで私はこの衛星からの何らかの価値を比較するだけでなく、いくつかの価値を求めています。LINQの大文字と小文字を区別しない列の値を比較する方法
orderdetail.PRODUCTCODE = context.PRODUCTs.Where(pro => pro.PRODUCTNAME==productname2)
.Select(code => code.PRODUCTCODE).DefaultIfEmpty().Max();
すべてのヘルプはあなたがケースを無視して文字列を比較する必要が
から
に動作しますか? – wkl
@wkl 'ToLower'は国際化の問題を抱えています - 常にstring.Equals(...)の関連するオーバーライドを使う方が良い –
私はこれがクエリで最も良く解決されるとは思わない。これがDBから来ていることを考えれば、データベース内の列に対して正しい(大文字と小文字を区別しない)照合を設定するほうが効果的かもしれないようです。大文字と小文字を変換することで、列にある可能性のあるインデックスの利点が破棄されます。 – spender