コード例 #1
0
        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();
        }