Where do employers get the idea that a job contract is a soul contract? Unless you are offering significant profit sharing, why expect to be normal that people simply sacrifice themselves for the sake of your company? And seduce you into believing it's nothing more than your moral obligation?!? It's a moral harassment policy!
Want people to work overtime and not complain? Pay them fairly for that! Want people to stick with your company and not leave? Provide a good workplace and a deserving salary!
The only ones that should have unconditional loyalty to a company are the company owners!
Besides, wake up and realize that there is no longer such a thing as a carrier in a single company. At least where I live, you shouldn't expect and IT employee to stick around longer than 4 years, and most leave within 1-2 years.
Stop thinking you hire loyalty.
And employess, realize that your company won't be any more loyal to you when things get rough and they need to make cuts. In fact, when that time comes, they usually go for the fat paychecks of those that stuck around.
Why? They can just as well shut down the company, if they want, or sell it, or do whatever.