6

次のコードがあります

    return
    this.Storage.Customer.OfType<Preferred>()
    .Include(b  => b.Order)
    .Where(cust => cust.Id == customerId && cust.CustomerType== (int)cusType)
    .SingleOrDefault();

where を除いて次のように書き換えることができます。

    return
    this.Storage.Customer.OfType<Preferred>()
    .Include(b  => b.Order)
    .SingleOrDefault(cust => cust.Id == customerId && cust.CustomerType == (int)cusType);

どちらがより良い方法で、その理由は何ですか?

4

3 に答える 3

1

まずはその違いを理解する必要があります

this.Storage.Customer.OfType<Preferred>()
.Include(b  => b.Order)
.Where(cust => cust.Id == customerId && cust.CustomerType== (int)cusType)

これはクエリを作成するだけで、ToList メソッドを呼び出すまで実行されません。

SingleOrDefault メソッドは実際にクエリを実行します。そのため、クエリを実行する前に確認したり何かを実行したい場合は、where を使用してから、SingleOrDefault を呼び出す必要があります。

全体として、私の個人的な意見によると、 where is good practice を使用してください

于 2013-08-27T09:17:23.213 に答える