Necesita ayuda con el mapeo NHibernate / NHibernate fluido

Digamos que tiene la siguiente estructura de tabla:

                  ==============================  
                  | Case                       |
                  ==============================
                  | Id           | int         |
                  | ReferralType | varchar(10) |
        +---------| ReferralId   | int         |---------+
        |         ==============================         |
        |                      |                         |
        |                      |                         |
======================  ======================  ======================        
| SourceA            |  | SourceB            |  | SourceC            |
======================  ======================  ======================
| Id   | int         |  | Id   | int         |  | Id   | int         |
| Name | varchar(50) |  | Name | varchar(50) |  | Name | varchar(50) |
======================  ======================  ======================

Basado en el ReferralType, el ReferralId contiene la identificación de SourceA, SourceB o SourceC

Estoy tratando de descubrir cómo mapear esto usando NHibernate fluido o simplemente NHibernate en un modelo de objetos. He intentado muchas cosas diferentes, pero no he tenido éxito. ¿Algunas ideas?

El modelo de objeto podría ser algo como:

public class Case
{ 
  public int Id { get; set; }
  public Referral { get; set; }
}

public class Referral
{
  public string Type { get; set; }
  public int Id { get; set; }
  public string Name { get; set; }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta