1

私はこのコードを持っています

private CurrencyConversionResult GetNumberOfCurrencyUnitsPerEuro(CurrencyType from, CurrencyType to)
        {
            ...

            IEnumerable<ExchangeRate> rate = info.ExchangeRates.Where(e => e.CurrencySymbol == from.ToString() || e.CurrencySymbol == to.ToString()).ToList();
            ...

このメソッドのシグネチャを次のように変更したい

private CurrencyConversionResult GetNumberOfCurrencyUnitsPerEuro(IEnumerable<CurrencyType> from, CurrencyType to)

したがって、私が今やりたいことは、e.CurrencySymbol が等しい、toまたはいずれかのExchangeRates をすべて取得することfromsです。質問は、データベース呼び出しが 1 つだけになるように、1 つのステートメントでそれを記述する方法がわからないということです。何か案は?

4

1 に答える 1

1
var symbols = from.Select(f => f.ToString());
var rate = info.ExchangeRates
               .Where(e => symbols.Contains(e.CurrencySymbol) || 
                           e.CurrencySymbol == to.ToString())
               .ToList();

Any を EF で変換できるかどうかはわかりませんが (Linq to SQL を使用したローカル シーケンスでは機能しません)、次のことも試してください。

var rate = info.ExchangeRates
               .Where(e => from.Any(f => e.CurrencySymbol == f.ToString()) || 
                           e.CurrencySymbol == to.ToString())
               .ToList();
于 2013-09-13T09:55:51.003 に答える