NH-3675

https://nhibernate.jira.com/browse/NH-3675
Initial implementation with unit tests
Also, please change to `TryGetValue`. And below also