Let us have the following domain model example:

public class Product {
    public int Id {get; set; }
    public string ProductNumber {get; set;}
}

public class Location
{
    public string Id {get; set;}
    public string LocationName {get; set; }
}

public class ProductInventory 
{
    public Product Product {get; set; }
    public InventoryLocation Location {get; set;}
    public decimal Quantity {get; set;}
}

and we want to map it to the following tables:



you map the classes Product, Location as usual, by inheriting from classMap.
There is no tricks in defining those classes, so I am not going to list them, but the trick is in ProductInventory mapping.
The mapping for ProductInventory will be as follows:
public class ProductInventoryMapping : ClassMap
{
    public ProductInventoryMapping() : base()
    {
        Table("ProductInventory");
        CompositeId()
            .KeyReference(x => x.Product, "ProductID")
            .KeyReference(x => x.Location, "LocationID");
            Map(x => x.Quantity);
    }
}
KeyReference will refer to many-to-one relation to the table mapped by the class Product , and Location.