partial void Delete__Page(__Page instance);
 partial void Insert__Page(__Page instance);
 partial void Update__Page(__Page instance);
        public void AddPage(WikiPage p)
        {
            p.ThrowIfArgumentNull();
            p.Title.ThrowIfArgumentNull();

            Func<string, string> aliasify = delegate(string s)
                    {
                        s = matchSpecialCharacters.Replace(s, string.Empty).Trim();
                        s = matchWhitespaces.Replace(s, "-");

                        return s;
                    };

            __Page _p = new __Page()
            {
                CreatedOn = (p.CreatedOn == DateTime.MinValue) ? DateTime.Now : p.CreatedOn,
                ModifiedOn = p.ModifiedOn,
                Alias = p.Alias ?? aliasify(p.Title),
                AuthorID = p.AuthorID,
                Title = p.Title,
                Body = p.Body,
                Published = p.Published
            };

            try
            {
                db.__Pages.InsertOnSubmit(_p);
                db.SubmitChanges();
            }
            catch (SqlException e)
            {
                Console.WriteLine(string.Format("{0} - Page Title = {1}", e.Message, p.Title));
            }

            p.ID = _p.ID;
        }