Я не знаю ASP.NET и всего остального, но я могу рассказать вам, как вы должны реализовать его против NHibernate.
Вам необходимо передать свойства работника, включая CompanyID, на сервер. Я предлагаю использовать DTO вместо передачи сущности.
Если вам нужно больше подробностей, вы должны объяснить, как вы передаете эти данные на сервер.
//create a company-proxy. this doesn't touch the database
Company company = session.Load<Company>(companyId);
// assign it the the worker. You need to put the worker into the
// session somehow before. this depends on your specific server interface
worker.Company = company;