public override IList<MappingConfiguration> GetMapping()
{
// initialize and return mappings
var mappings = new List<MappingConfiguration>();
MapItem(mappings);
MapUrlData(mappings);
return mappings;
}
private void MapItem(IList<MappingConfiguration> mappings)
{
// initialize mapping
var itemMapping = new MappingConfiguration<LocationItem>();
itemMapping.HasProperty(p => p.Id).IsIdentity();
itemMapping.MapType(p => new { }).ToTable("sf_locations");
// add properties
itemMapping.HasProperty(p => p.Address);
itemMapping.HasProperty(p => p.City);
itemMapping.HasProperty(p => p.Region).IsNullable();
itemMapping.HasProperty(p => p.PostalCode);
itemMapping.HasProperty(p => p.Country);
// map urls table association
itemMapping.HasAssociation(p => p.Urls).WithOppositeMember("parent", "Parent").ToColumn("content_id").IsDependent().IsManaged();
mappings.Add(itemMapping);
}
private void MapUrlData(IList<MappingConfiguration> mappings)
{
// map the Url data type
var urlDataMapping = new MappingConfiguration<LocationItemUrlData>();
urlDataMapping.MapType(p => new { }).Inheritance(InheritanceStrategy.Flat).ToTable("sf_url_data");
mappings.Add(urlDataMapping);
}