Глубокая копия
Глубокая копия копирует все поля и создает копии динамически выделенной памяти, на которые указывают поля. Глубокая копия возникает, когда объект копируется вместе с объектами, к которым он относится.
Неверная копия
Неглубокая копия - это бит-мудрая копия объекта. Создается новый объект, который имеет точную копию значений в исходном объекте. Если какое-либо из полей объекта является ссылкой на другие объекты, копируются только ссылочные адреса, т. Е. Копируется только адрес памяти.
Вы создали Contractors
внутри using (Db db = new Db())
. Ничто вне этого не знает, что это существует, поэтому оно говорит, что это не в текущем контексте.
Объявите за пределами этого, например:
List<ContractorVM> Contractors = new List<ContractorVM>()
, а затем внутри назначьте ему значение, например:
Contractors = db.Contractors.Where(x => x.UserId == userId).ToArray().Select(x => new ContractorVM(x)).ToList();
, и оно должно работать