подтвердить ленивую загрузку linq для сущностей для моего репозитория [просто] - PullRequest
1 голос
/ 22 декабря 2010

Простой вопрос:

Часть моего хранилища выглядит так

public class CustomerRepository : IRepository<Customer>
{
   public IQueryable<Customer> GetAll()
   {
     MyDataEntities ent = new MyDataEntities();
     return from c in ent.Customers  select c;
   }
}

Теперь предположим, что у меня 10000 клиентов, и если я сделаю это:

var cus = from c in GetAll() where c.FirstName == "jon" select c;

Пожалуйста, скажите мне, что GetAll () не загрузит все эти 10000, но ленивый загрузит все это? Это то, что мне нужно установить где-то или это происходит автоматически?

Я бы также не знал, как проверить, загружен ли он лениво, есть ли что-то, чтобы увидеть, когда фактический SQL-запрос был сплит на сервер SQL?

Извините за невежество.

1 Ответ

1 голос
/ 22 декабря 2010

Да, будет.Поскольку ваш GetAll возвращает IQueryable.Один из простых способов убедиться, что это происходит, - открыть профилировщик и посмотреть на выполняемый запрос.Или исследуйте объект IQueryable в отладчике.

...