public SqlParameter[] ModifyParameters(IEntity entity) { SqlParameter[] specificParameters = new SqlParameter[0]; SqlParameter[] nullParameters = new SqlParameter[0]; string typeName = ""; if (entity is PromoDay) { specificParameters = promoDayMapping.ModifyParameters(entity); nullParameters = NullParametersFor(discountUntilExpiredMapping.Columns); typeName = typeof(PromoDay).Name; } else if (entity is DiscountUntilExpired) { specificParameters = discountUntilExpiredMapping.ModifyParameters(entity); nullParameters = NullParametersFor(promoDayMapping.Columns); typeName = typeof(DiscountUntilExpired).Name; } return specificParameters.Concat(nullParameters) .Concat(new[] { new SqlParameter("DiscountPercentage", ((DiscountPolicyBase) entity).DiscountPercentage.Value), new SqlParameter("Discriminator", typeName) }) .ToArray(); }