Last active
March 23, 2017 23:15
-
-
Save alexandrebl/af0d52ede5cc39a0df394346802491d7 to your computer and use it in GitHub Desktop.
Exemplo de persistência de dados utilizando o MongoDB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using MongoDB.Bson.Serialization.Attributes; | |
| using MongoDB.Driver; | |
| using Newtonsoft.Json; | |
| namespace MongoDBPersitDataExample { | |
| /// <summary> | |
| /// Programa principal | |
| /// Dependências NuGet: install-package mongocsharpdriver | |
| /// install-package newtonsoft.json | |
| /// </summary> | |
| internal class Program | |
| { | |
| /// <summary> | |
| /// Método principal | |
| /// </summary> | |
| private static void Main() | |
| { | |
| //Objeto de persistência de dados | |
| var persistData = new PersistData(); | |
| //Dados do produto | |
| var produto = new Produto {Key = Guid.NewGuid(), Marca = "Dell", Nome = "Notebook Latitude"}; | |
| //Insere o item no banco de dados | |
| persistData.InsertItem(produto); | |
| //Informa que o item foi inserido | |
| Console.WriteLine("Item inserido com sucesso"); | |
| //Obtem um produto | |
| var produtoFound = persistData.GetItem(produto.Key); | |
| //Imprime dados do produto encontrado | |
| Console.WriteLine(JsonConvert.SerializeObject(produtoFound)); | |
| //Aguarda uma tecla ser pressionada | |
| Console.ReadKey(); | |
| } | |
| } | |
| /// <summary> | |
| /// Classe de persistência | |
| /// </summary> | |
| public class PersistData | |
| { | |
| /// <summary> | |
| /// Insere um produto no banco dedados | |
| /// </summary> | |
| /// <param name="produto">Dados do produto</param> | |
| public async void InsertItem(Produto produto) | |
| { | |
| //Cria um cliente | |
| var client = new MongoClient("mongodb://localhost:27017"); | |
| //Obtem o banco de dados | |
| var database = client.GetDatabase("Estoque"); | |
| //Obtem a coleção | |
| var collection = database.GetCollection<Produto>("Informatica"); | |
| //Insere um item no banco de dados | |
| await collection.InsertOneAsync(produto); | |
| } | |
| public Produto GetItem(Guid key) | |
| { | |
| //Cria um cliente | |
| var client = new MongoClient("mongodb://localhost:27017"); | |
| //Obtem o banco de dados | |
| var database = client.GetDatabase("Estoque"); | |
| //Obtem a coleção | |
| var collection = database.GetCollection<Produto>("Informatica"); | |
| //Insere um item no banco de dados | |
| var produto = collection.Find(f => f.Key == key, new FindOptions() {AllowPartialResults = false}).SingleOrDefault(); | |
| //Retorno | |
| return produto; | |
| } | |
| } | |
| /// <summary> | |
| /// Classe que representa um produto | |
| /// </summary> | |
| [BsonIgnoreExtraElements] | |
| public class Produto | |
| { | |
| /// <summary> | |
| /// Chave | |
| /// </summary> | |
| public Guid Key { get; set; } | |
| /// <summary> | |
| /// Nome | |
| /// </summary> | |
| public string Nome { get; set; } | |
| /// <summary> | |
| /// Marca | |
| /// </summary> | |
| public string Marca { get; set; } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment