Benötigen Sie Hilfe bei der NHibernate / Fluent NHibernate-Zuordnung?

Angenommen, Sie haben die folgende Tabellenstruktur:

                  ==============================  
                  | 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) |
======================  ======================  ======================

Basierend auf dem ReferralType enthält die ReferralId eine ID für SourceA, SourceB oder SourceC

Ich versuche herauszufinden, wie dies mit Fluent NHibernate oder einfach NHibernate in ein Objektmodell abgebildet werden kann. Ich habe verschiedene Dinge ausprobiert, war aber nicht erfolgreich. Irgendwelche Ideen?

Das Objektmodell könnte etwa so aussehen:

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; }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage