次のようなクラスがあるとしましょう:
public class MyClass {
...
public List<SomeClass> MyProperty {
get {
SomeClass.GetCollectionOfThese(someId);
}
}
...
}
GetCollectionOfThese()
データベースを呼び出して、コレクションの構築に必要なレコードを取得します。ここで、別の場所に次のコードがあるとします。
MyClass obj = new MyClass(someId);
List<SomeClass> temp = obj.MyProperty;
...
SomeClass otherObj = obj.MyProperty.FirstOrDefault(i => i.Foo == "bar");
この場合、データベースは 2 回呼び出されていますか? または、プロパティ値はメモリにキャッシュされていますか?