I don't know why you are using Virtual
property for most of fields, This cause to have lazy loading and obviously you'll encounter validation error on Any Operation where you call entire entity like .Find()
operand. You must first decide what do you wanna do! Another solution that I don't prefer for you is disabling validation on save changes:
context.Configuration.ValidateOnSaveEnabled = false;
context.SaveChanges();