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