//upsert a la base de datos private void btnOK_Click(object sender, EventArgs e) { Post post = null; switch (this.modo) { case "POST": post = new Post() { Titulo = txtTitulo.Text, Contenido = txtContenido.Text, Longitud = txtContenido.Text.Length, //no podemos enviarla nula Comentarios = new List<Comentario> { } }; break; case "COMENTARIO": var comentario = new Comentario() { Contenido = txtContenido.Text, Email = txtEmail.Text, FechaPosteo = DateTime.Now }; post = padre.ObtenerPostActual(); post.Comentarios.Add(comentario); break; } padre.coleccion.Save(post); this.Dispose(); }
//poblamos la BD con unos cuantos posts y comentarios private static void CrearPosts(IMongoCollection<Post> collection) { var post = new Post() { Titulo = "mi primer post", Contenido = "hola amigos soy nuevo en esto", Longitud = 27, Comentarios = new List<Comentario> { { new Comentario() { FechaPosteo = new DateTime(2014,1,1), Email = "*****@*****.**", Contenido = "es un post demasiado corto" } }, { new Comentario() { FechaPosteo = new DateTime(2014,1,2), Email = "*****@*****.**", Contenido = "estoy de acuerdo con anónimo" } } } }; //guardamos el post. esto realiza un upsert, es decir, si no existe se inserta, caso contrario, se actualiza. collection.Save(post); //obtenemos el primer post que no corresponda post = collection.Linq().First(x => x.Longitud != x.Contenido.Length); post.Longitud = post.Contenido.Length; //esto resulta en un update ya que ya insertamos el registro collection.Save(post); post = new Post() { Titulo = "Mi Segundo Post", Contenido = "Este post no es largo", Longitud = 34, Comentarios = new List<Comentario> { { new Comentario() { FechaPosteo = new DateTime(2014,1,1), Email = "*****@*****.**", Contenido = "Parece que no has mejorad." } }, } }; //guardamos el post. esto realiza un upsert, es decir, si no existe se inserta, caso contrario, se actualiza. collection.Save(post); post = new Post() { Titulo = "Mi tercer post", Contenido = "Bueno este post si es mucho más grande así que espero que esten contentos", Longitud = 69, Comentarios = new List<Comentario> { { new Comentario() { FechaPosteo = new DateTime(2014,1,1), Email = "*****@*****.**", Contenido = "No calificaría a esto como un post." } }, } }; //guardamos el post. esto realiza un upsert, es decir, si no existe se inserta, caso contrario, se actualiza. collection.Save(post); }