Ejemplo n.º 1
0
        public static UpdateStatement CreateUpdateStatement(IMapping mapping)
        {
            UpdateStatement statement = new UpdateStatement(mapping.TableName);

            foreach (var item in mapping.Columns)
            {
                var          pinfo = (PropertyInfo)item.Property;
                SqlParameter prm;
                if (!item.IsDbGenerated && !item.IsPrimaryKey)
                {
                    if (pinfo.PropertyType.IsGenericType && pinfo.PropertyType.GetGenericTypeDefinition() == typeof(Nullable <>))
                    {
                        prm = statement.CreateParameter(item.Name, pinfo.PropertyType.GetGenericArguments()[0]);
                    }
                    else
                    {
                        prm = statement.CreateParameter(item.Name, pinfo.PropertyType);
                    }
                    statement.Column(item.ColumnName, prm);
                }
                else
                {
                    prm = statement.CreateParameter(item.Name, pinfo.PropertyType);
                    statement.Where(new Condition(item.ColumnName, Comparisons.Equals, prm));
                }
            }

            return(statement);
        }