ты не должен этого делать. Ваш контроллер должен собрать данные, необходимые для вашего представления, и должен упаковать их и передать их представлению для визуализации.
Таким образом, ваш ProductModel
должен либо взять детали Product
, которые ему нужны, в своем конструкторе или через свойства (мои предпочтения), либо при толчке использовать Product
, который ему дан для выполнения всех запросов в конструкторе, чтобы установить все свои внутренние поля, но не хранить ссылку на Product
. Мне не нравится использование Product
в конструкторе, особенно потому, что он выполняет работу в конструкторе, что не очень хорошо, но в зависимости от того, что он делает, это может быть нормально.
Вероятно, лучше, чтобы ваш ProductModel
имел множество свойств, тогда вы можете создать его так:
var model = new ProductModel()
{
Statuses=product.ProductToStatus.Select(s=>s.ProductStatus).ToList(),
Name=product.Name,
OtherProperty=GetPropertyValue(product),
//etc
}