2012-04-04 4 views
0

このC#コードでは、userName値をstring型からint型に変換する必要があります。 誰も私を助けてください知っていますか?コンパイルエラーとしてエラーが発生しました。「このように、ラムダ式をデリゲート型ではないためint型に変換できません。ラムダ式がデリゲート型ではないため 'int'型に変換できません

 ShoppingCartPartRecord cartRecord = null; 
     try { 
      cartRecord = _shoppingCartRepository.Get(r => r.Username == userName); 
     } 
     catch (InvalidOperationException ex) { 
      if (ex.Message == "Sequence contains more than one element") { 
       var badCarts = _shoppingCartRepository.Table.Where(x => x.Username == userName); 
       foreach (var shoppingCartPartRecord in badCarts) { 
        _shoppingCartRepository.Delete(shoppingCartPartRecord); 
       } 
      } 
     } 

ありがとうございます。

+1

'_shoppingCartRepository'のタイプは何ですか、私はGetメソッドがintを必要としていると推測しています。 '_shoppingCartRepository.Table.First(r => r.Username == userName)'が必要ですか? –

+0

ゲットとはそれは_shoppingCartRepositoryのメソッドですか? – Habib

+0

はいメソッドを取得するためにintメソッドを割り当てる必要があります。しかし、これは動作していません。 – Leo

答えて

1

リポジトリへのソースがないと、メソッドが何をするかだけを推測できます。あなたがget関数を記述しているエラーから

は、所望の効果を達成するために、次のように配列または整数プライマリキーにインデックスので、間違った機能がある

どちらかあなたはコードを変更することができるはず期待し

ShoppingCartPartRecord cartRecord = null; 
    try { 
     cartRecord = _shoppingCartRepository.Table.Single(r => r.Username == userName); 
    } 
    catch (InvalidOperationException ex) { 
     if (ex.Message == "Sequence contains more than one element") { 
      var badCarts = _shoppingCartRepository.Table.Where(x => x.Username == userName); 
      foreach (var shoppingCartPartRecord in badCarts) { 
       _shoppingCartRepository.Delete(shoppingCartPartRecord); 
      } 
     } 
    } 
関連する問題