Я запускаю сценарии тестирования, чтобы решить, следует ли внедрять систему с использованием Entity Framework, и натолкнулся на интересный вопрос.У меня есть коллекция объектов «PersonCollectable», хранящихся в «Person», и каждый «PersonCollectable» ссылается на «страницу»;Извлечение коллекции предоставляет мне все объекты PersonCollectable, которые я хочу отобразить, но я также хочу отобразить имя страницы. Приведет ли это к запросу для каждой страницы и, таким образом, отрицательно повлияет на производительность?
public class Person
{
public virtual ICollection<PersonCollectable> Collection { get; set; }
public int Id { get; set; }
public string Name { get; set; }
}
public class PersonCollectable
{
public int Id { get; set; }
public virtual Page Page { get; set; }
public int PageId { get; set; }
}
public class Page
{
public int Id { get; set; }
public string Name { get; set; }
}
И это тестовый код для извлечения информации и отображения результатов.Представьте, что коллекция заполнена не менее чем 500 элементами, поэтому это может привести к 500 дополнительным запросам на каждый веб-запрос.Машина разработки может справиться с этим, но я хотел бы знать, не приведет ли это к разрушению опубликованного продукта.
Person example = db.People.Single( s => s.Name == "Roel" );
foreach( PersonCollectable exampleCollectable in example.Collection ) {
Console.WriteLine( "{0} rated {1}", exampleCollectable.Page.Name, exampleCollectable.Rating );
}
Пожалуйста, поделитесь своим мнением и помогите мне ответить на этот вопрос, приведет ли это кзапрос для каждой страницы и таким образом отрицательно влияет на производительность? Спасибо.