Say if I have the following class:
public class Entry : Entity<int>
{
public Entry()
{
Behaviours = new List<EntryBehaviour>();
}
public virtual IList<EntryBehaviour> Behaviours { get; set; }
}
public class EntryBehaviour
{
public virtual Entry Entry { get; set; }
public virtual int EntryID { get; set; }
public virtual Behaviour Behaviour { get; set; }
public virtual int BehaviourID { get; set; }
}
public class Behaviour : Lookup<int>
{
public Behaviour()
{
Entries = new List<EntryBehaviour>();
}
public virtual Category Category { get; set; }
public virtual int CategoryID { get; set; }
public virtual IList<EntryBehaviour> Entries { get; set; }
} public class Category : Lookup<int>  ...
Go to the complete details ...