2016-09-30 4 views
-2

ゼロのlinqラムダ式で始まる文字列の条件に問題が発生した場合、問題が発生します。ラムダ式ここで、条件がゼロで始まるときに問題を起こす場合

CityCodeフィールドタイプは文字列です。例について

var hospitals=context.Hospitals.Where(p=>p.CityCode=="01"); 

それはデータベースから行を返すdoesntの。

しかし、これをしようとすると:それは完璧に動作します

var hospitals=context.Hospitals.Where(p=>p.CityCode=="21"); 

この問題を解決するにはどうすればよいですか?

私はこれがすべてで動作します思ったんだけど

+3

いいえ、そのコードは「完璧」ではありません。「21」は有効な文字リテラルではないため、コンパイルされません。さて、これと照合するためのデータを示してください。データベースのフィールドタイプは何ですか?ここで数値型を使用していない理由は何ですか? –

+0

'CityCode'型の文字列ですか?ダブル引用符( "01")を使用する必要があります –

+0

一重引用符がタイプミスで二重引用符でなければならず、 'CityCode'が実際にあなたのDBの' string'型であると仮定すると、 "1"のように、しかしそれは "01"と一致しません。私たちが多くの前提を作らなければならないので、あなたの問題が何であるかは本当に明確ではありません。 – juharr

答えて

3

を助けてください。それはあなたがint値を比較した場合CityCodeがstringその後、.Where(p=>p.CityCode=="21");

ある場合は、 char.Where(p=>p.CityCode=='1'); //only one character is valid

  • を比較する場合は、.Where(p=>p.CityCode== 1);

  • を使用する必要がありますCityCode

    • の種類にdepens

  • +0

    しかし、文字列であり、dbから '01'です。 – kodcu

    +0

    '' 01 "'は文字列を確認し、データベースにこの条件を満たすレコードがありますか? – fubo

    +0

    @ kodcuあなたは '01'と '01'の違いを理解していないようです。あなたが意味することを正確にしてください。 – Mixxiphoid

    関連する問題