Вы можете сделать следующее ...
session.CreateCriteria<Log>()
.CreateAlias("Company", "company")
.SetProjection(Projections.Property("company.class"))
Но эта проекция может использоваться только для фильтрации и упорядочения; NHibernate не будет возвращать System.Type в наборе результатов (он возвращает целое число, которое используется внутри).
Если вам нужно знать конкретный тип компании, вы можете сделать следующее:
var logs = session.CreateCriteria<Log>()
.SetFetchMode("Company", FetchMode.Join) //avoid SELECT N+1
.List<Log>()
И затем, чтобы получить тип для каждой строки:
foreach (var log in logs)
string companyClassName = session.GetEntityName(log.Company);