У меня есть модель, которая имеет некоторые соответствующие данные в навигационных свойствах, например так:связанные Чтение данных из метода члена модели
public class Document
{
[Key]
public int DocumentId { get; set; }
public string DocumentName { get; set; }
public virtual ICollection<DocumentBeneficiary> DocumentBeneficiaries { get; set; }
public virtual ICollection<DocumentExecutor> DocumentExecutors { get; set; }
public virtual ICollection<DocumentSuccessor> DocumentSuccessors { get; set; }
}
Я понимаю, как сделать жадную загрузку из этих связанных данных из контроллера метод, например, так:
var doc = context.Documents.Include(x => x.DocumentBeneficiaries)
Тем не менее, то, что я хочу сделать, это написать метод члена внутри модели, которая принимает данные, относящиеся к объекту, делает некоторую обработку и выводит строку. Что-то вроде этого:
public class Document
{
...
public string ProcessStuff() {
//use data in navigation properties here like so:
foreach (var d in DocumentBeneficiaries) { ... }
}
}
Возможно ли это? Я не могу найти ничего об этом в google. Будет ли он загружать связанные данные ленивыми и нетерпеливыми в зависимости от того, как я загружаю объект в контроллер до вызова метода в модели?
Я понимаю, что некоторые школы мысли придерживаются того, что модели не должны иметь никаких методов, но другие говорят, что вполне нормально поставить бизнес-логику в модель. Если у есть, я полагаю, что я могу сделать это методом контроллера, но, по возможности, этот способ имеет больше смысла для моего дизайна. Извините, если это несколько умозрительный вопрос, но я не могу найти никакой информации об этом шаблоне.