Nhibernate- Relacionamento many-to-one

Tentei realizar o relacionamento many-to-one, porém apresenta essa mensagem, que não inicializa a lista.

could not initialize a collection: [prjTeste.Entidades.Companhia.ListaBusiness#1][SQL: SELECT listabusin0.CompanhiaId as Compan5_2_1, listabusin0.IdBusiness as IdBusi1_2_1, listabusin0.IdBusiness as IdBusi1_2_0, listabusin0.BusinessCodigo as Busine2_2_0, listabusin0.Nome as Nome3_2_0, listabusin0.CNPJ as CNPJ4_2_0, listabusin0.CompanhiaId as Compan5_2_0 FROM Business listabusin0 WHERE listabusin0.CompanhiaId=?]

Segue minhas classes:

Business.hbm.xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
  assembly="prjTeste"
  namespace="prjTeste.Entidades">
  <class name="Business">
    <id name="IdBusiness">
      <generator class="identity" />
    </id>
    <property name="BusinessCodigo" />
    <property name="Nome" />
    <property name="CNPJ" />
    <many-to-one name="CompanhiaId" class="Companhia" fetch="join"/>
  </class>
</hibernate-mapping>

Classe Business

public class Business
{
    public virtual Companhia CompanhiaId { get; set; }
    public virtual int IdBusiness { get; set; }
    public virtual string BusinessCodigo { get; set; }
    public virtual string Nome { get; set; }
    public virtual string CNPJ { get; set; }
}

Classe BusinessDAO

class BusinessDAO
{
    private ISession session;

    public BusinessDAO(ISession session)
    {
        this.session = session;
    }

    public void Add(Business business)
    {
        ITransaction transacao = session.BeginTransaction();
        if (business.IdBusiness != 0)
        {
            session.Update(business);
        }
        else
        {
            session.Save(business);
        }
        transacao.Commit();
    }

    public Business BuscaPorIdNumber(int IdBusiness)
    {
        return session.Get<Business>(IdBusiness);
    }

    public IList<Business> ListBusiness()
    {
        ICriteria criteria = session.CreateCriteria<Business>();

        return criteria.List<Business>();
    }
}

Companhia.hbm.xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
  assembly="prjTeste"
  namespace="prjTeste.Entidades">
  <class name="Companhia">
    <id name="IdCompanhia">
      <generator class="identity" />
    </id>
    <property name="CompanhiaCodigo" />
    <property name="Nome" />
    <bag name="ListaBusiness" fetch="join">
      <key column="CompanhiaId"/>
      <one-to-many class="Business"/>
    </bag>
  </class>
</hibernate-mapping>

Classe Companhia

public class Companhia
{
    public virtual int IdCompanhia { get; set; }
    public virtual string CompanhiaCodigo { get; set; }
    public virtual string Nome { get; set; }
    public virtual IList<Business> ListaBusiness { get; set; }
}

Classe CompanhiaDAO

class CompanhiaDAO
{
    private ISession session;

    public CompanhiaDAO(ISession session)
    {
        this.session = session;
    }

    public void Add(Companhia companhia)
    {
        ITransaction transacao = session.BeginTransaction();
        if (companhia.IdCompanhia != 0)
        {
            session.Update(companhia);
        }
        else
        {
            session.Save(companhia);
        }
        transacao.Commit();
    }

    public Companhia BuscaPorIdNumber(int IdCompanhia)
    {
        return session.Load<Companhia>(IdCompanhia);
    }

    public IList<Companhia> ListCompanhia()
    {
        ICriteria criteria = session.CreateCriteria<Companhia>();
        return criteria.List<Companhia>();
    }
}

Não sei o que há de errado.

Verifiquei o problema, a tabela não foi atualizada com o relacionamento.

Passei o comando:

new SchemaExport(cfg).Create(true, true);

Ele drop as tabelas e criou novamente, e deu certo.

Porém criei uma nova classe e mudei o comando para:

new SchemaUpdate(cfg).Execute(true, true);

Não criou a nova tabela.