コード例 #1
0
        internal void Delete(Entity entity)
        {
            SqlStatement sql = new SqlStatement();

            // delete...
            StringBuilder builder = new StringBuilder();
            builder.Append("delete from ");
            builder.Append(this.EntityType.NativeName);
            builder.Append(" where ");
            AppendSelectConstraint(builder, sql, entity);

            // run...
            sql.CommandText = builder.ToString();

            // run...
            SqlCeHelper db = new SqlCeHelper();
            db.EnsureTableExists(entity.EntityType);
            db.ExecuteNonQuery(sql);
        }
コード例 #2
0
        internal void Update(Entity entity)
        {
            SqlStatement sql = new SqlStatement();

            // create...
            StringBuilder builder = new StringBuilder();
            builder.Append("update ");
            builder.Append(this.EntityType.NativeName);
            builder.Append(" set ");
            bool first = true;
            foreach (EntityField field in this.EntityType.Fields)
            {
                if (entity.IsModified(field))
                {
                    if (first)
                        first = false;
                    else
                        builder.Append(", ");
                    builder.Append(field.NativeName);
                    builder.Append("=@");

                    // value...
                    object value = entity.GetValue(field);
                    builder.Append(sql.AddParameter(value).Name);
                }
            }
            builder.Append(" where ");
            this.AppendSelectConstraint(builder, sql, entity);

            // run...
            sql.CommandText = builder.ToString();

            // run...
            SqlCeHelper db = new SqlCeHelper();
            db.EnsureTableExists(entity.EntityType);
            db.ExecuteNonQuery(sql);
        }
コード例 #3
0
        internal static void DeleteAll()
        {
            SqlCeHelper db = new SqlCeHelper();

            // ensure...
            EntityType et = EntityType.GetEntityType(typeof(Bookmark));
            db.EnsureTableExists(et);

            // delete...
            db.ExecuteNonQuery(new SqlStatement("delete from " + et.NativeName));
        }
コード例 #4
0
        internal void Insert(Entity entity)
        {
            SqlStatement sql = new SqlStatement();

            // create...
            StringBuilder builder = new StringBuilder();
            builder.Append("insert into ");
            builder.Append(this.EntityType.NativeName);
            builder.Append(" (");
            bool first = true;
            foreach (EntityField field in this.EntityType.Fields)
            {
                if (entity.IsModified(field))
                {
                    if (first)
                        first = false;
                    else
                        builder.Append(", ");
                    builder.Append(field.NativeName);
                }
            }
            builder.Append(") values (");
            first = true;
            foreach (EntityField field in this.EntityType.Fields)
            {
                if (entity.IsModified(field))
                {
                    if (first)
                        first = false;
                    else
                        builder.Append(", ");

                    // param...
                    object value = entity.GetValue(field);
                    SqlStatementParameter param = sql.AddParameter(value);
                    builder.Append("@");
                    builder.Append(param.Name);
                }
            }
            builder.Append(")");

            // run...
            sql.CommandText = builder.ToString();

            // run...
            SqlCeHelper db = new SqlCeHelper();
            db.EnsureTableExists(entity.EntityType);
            db.ExecuteNonQuery(sql);
        }
コード例 #5
0
        private void GetLatest()
        {
            Debug.WriteLine("Getting latest...");

            BookmarksService service = new BookmarksService();
            service.GetAll((Action<List<Bookmark>>)delegate(List<Bookmark> bookmarks)
            {
                // ensure...
                SqlCeHelper db = new SqlCeHelper();
                db.EnsureTableExists(EntityType.GetEntityType(typeof(Bookmark)));

                // delete first...
                Bookmark.DeleteAll();

                // go through and save them...
                foreach (Bookmark fromServer in bookmarks)
                {
                    // we need to clone it as the ones that come from the server will have an id set.  we
                    // need to junk this id...
                    Bookmark newBookmark = new Bookmark();
                    newBookmark.Ordinal = fromServer.Ordinal;
                    newBookmark.Name = fromServer.Name;
                    newBookmark.Url = fromServer.Url;

                    // set the local only stuff...
                    newBookmark.IsLocalModified = false;
                    newBookmark.IsLocalDeleted = false;

                    // save...
                    newBookmark.SaveChanges();
                }

                // signal that we've finished...
                this.Callback();

            }, this.Failed);
        }