EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Idiomaschevron-right
C#chevron-right

Começando com o novo provedor MongoDB para EF Core

47 min • Publicado em 15 de dezembro 2023
.NETC#
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Vídeo
star-empty
star-empty
star-empty
star-empty
star-empty
Pesquisar
00:00:00Introdução ao MongoDB EF Core Provider
- euntroducteuon to the new MongoDB proveuders for EF Core. - Overveuew of the tutoreual 's objecteuves and prerequeuseutes.
00:01:37Configurando o EF Core com MongoDB
- eunstructeuons on setteung up the project and addeung necessary NuGet packages. - Confeugurateuon of MongoDB setteungs eun appsetteungs.json. - Explanateuon of createung the DbContext and euntegrateung eut weuth MongoDB.
00:13:01Implementação de serviços
- Createuon of serveuce eunterfaces and eumplementateuons for car and bookeung enteuteues. - Dependency eunjecteuon setup for serveuces eun the program feule.
00:22:50Criando Modelos de Visualização
- euntroducteuon to veuew models and theeur role eun the appleucateuon. - Createuon of leust and add veuew models for cars and bookeungs.
00:25:31Controladores de construção
- Development of controllers for car and bookeung enteuteues. - Explanateuon of CRUD operateuons weutheun the controllers.
00:32:42Desenvolvendo visualizações e páginas do Razor
- Createuon of veuews for leusteung, addeung, edeuteung, and deleteung cars and bookeungs. - Setup of Razor pages to eunteract weuth the controllers.
00:42:46Testando o Aplicativo
- Demonstrateuon of the workeung appleucateuon weuth CRUD functeuonaleuty. - Troubleshooteung and feuxeung an error related to the car leust veuew model. - Feunal walkthrough of the appleucateuon 's features and operateuons.
O foco principal do vídeo é aprender a criar um aplicativo de pilha completa usando o MongoDB com o EF Core no .NET, abrangendo a configuração, os serviços de back-end e as exibições de front-end para executar operações CRUD e o controle de alterações.
} Pontos-chave
  • Introdução aos provedores MongoDB para EF Core, atualmente em pré-visualização.
  • Guia passo a passo para criar um aplicativo de pilha completa com operações CRUD e controle de alterações.
  • Explicação das ferramentas e pré-requisitos necessários para seguir o tutorial.
  • Passo a passo detalhado da configuração do EF Core com MongoDB e implementação de serviços e modelos de visualização.
  • Criação de comandos e visualizações para lidar com interações com usuários e apresentação de dados.
  • Demonstração final do aplicativo de trabalho com funcionalidade CRUD.
Todos os vídeos do MongoDB

Transcrição completa do vídeo
Olá, amigos, você deve saber que há muitos anos temos um driver do MongoDB para.net, mas você estava ciente de que recentemente anunciamos os fornecedores do MongoDB para o EF core para dar suporte ao EF core e ele está atualmente disponível em versão prévia I' Perdemos o nome de Tarsy, um consultor de desenvolvedores, aqui no MongoDB, e neste tutorial em vídeo, Go usar o asp.net MVC e o novo provedor de chamadas EF, e criaremos um aplicativo de pilha completa com CRUD e o rastreamento de alterações vamos começar para acompanhar este tutorial você precisará de algumas coisas Net 7 um entendimento básico de asp.net MVC e C um MongoDB gratuito nesta conta e um cluster de camada grátis m0 e visual Studio 2022 Usar-me-á na plataforma Windows porque é a mais comumente usada, mas se quiser, você pode, é claro, acompanhar usando a CLI da rede e o código do Visual Studio com a extensão cop dev set ou o Visual Studio para Mac, é claro, que sua experiência se você fizer dessa forma será s ligeiramente diferente, mas no geral é bastante simples e todos os links necessários podem ser encontrados na descrição do vídeo abaixo, então vamos criar o projeto, então aqui estamos no Visual Studio 2022 e estamos Go em frente, Go para à frente e selecione criar um novo projeto que então abrirá muitos modelos de projeto diferentes que você pode escolher o que queremos fazer isso você pode Atlas Search por asp.net cor web app model view manager selecione-o clique em próximo então queremos para dar um nome a ele, então vamos chamá-lo de super sistema de reserva de carros depende inteiramente de você optar por colocar um projeto de solução no mesmo diretório Eu faço isso só porque não curto criar uma pasta extra mas tudo depende da preferência clique em próximo uh então escolha sua versão de rede no menu suspenso Eu recomendado escolher Rede 7 aqui o tipo de autenticação é n uh certifique-se de configurá-la para https e deixar as outras opções desmarcadas, então vamos Go em frente e clique em criar para que possamos construir o nosso projeto e ele será o padrão pronto para uso do aplicativo asp.net MVC que você esperaria, então agora vamos Go em frente e adicione o novo provedor MongoDB para o driver principal EF em nosso aplicativo agora que temos nosso projeto criado que é hora de adicionar os novos pacotes obter, então clicaremos com o botão direito do mouse e Go para gerenciar novos pacotes obter Go para procurar certifique-se de que eles incluam pré-lançamentos marcados caso contrário você não verá o driver porque ele ainda está em pré-visualização então vamos digitar MongoDB Entity framework core na caixa de pesquisa do Atlas, selecionar Entity framework core e instalar a pré-versão mais recente que, no momento da gravação, é a visualização, então aceite que o outro pacote que também precisamos instalar é ND framework core em si também Atlas Search para isso e, como estamos direcionando a Net 7, vamos garantir a seleção de 7.0.4 na caixa da versão, selecione essa instalação aceite os termos e condições e lá temos agora que temos os novos pacotes e o pro configuração do projeto e tudo o que é hora de começar a adicionar os modelos que vamos usar dois desses modelos, o carro e as reservas representarão uh documentos em nossas coleções em nosso banco de dados e, em seguida, o terceiro será para representar nossas configurações todos os todos os códigos que estou usando hoje serão copiados e colados da versão escrita deste tutorial, que você pode encontrar seguindo o link na descrição abaixo então, primeiro de tudo, vamos começar com a reserva do carro, então estamos vamos adicionar uma nova classe à nossa pasta de modelos vamos chamá-lo de carro então, dentro disso, vamos copiar e colar algumas declarações de uso na parte superior, em seguida, copiar a decoração da classe e algumas propriedades e aqui vamos nós temos um ID que é um ID de objeto de tipo que, se você é fa miliar com o MongoDB é o nosso tipo de dados uh que se parece um pouco com um guia que usamos para o nosso campo de chave primária _ ID então temos o modelo temos algum tratamento de erros e um tipo de coisas bonita que vem de asp.net então nós só temos mais algumas propriedades então localização da placa de número e então um Booleano se o carro está reservado ou não para que possamos salvar isso e agora podemos fazer a classe de reserva para que possamos adicionar novamente uma nova classe Vou chamá-lo de agendamento e copiar o tempo inteiro das aulas porque é tudo muito parecido, então, como antes de termos as mesmas declarações usando, temos um atributo de coleção, mas desta vez é para agendamentos, então temos temos as propriedades extras porque queremos referenciar um ID de carro com uma reserva, também temos aqui novamente com o ID do objeto e que corresponderá ao campo ID do objeto ID do modelo do carro e, em seguida, temos algumas data e hora uh FS aqui para a data de início e a data final da reserva, então salve isso e por último, mas não menos importante, nós vamos adicionar a classe de configurações do MongoDB, então essa é apenas uma classe para representar nossas configurações que armazenaremos nas configurações do aplicativo. JSON mais tarde, então vamos chamar essas configurações de banco de dados mongod que vamos copiar e que vamos substituir isso aqui, então isso tem os atributos um, como eu disse, que virão das configurações do nosso aplicativo, então nós' temos o URI do Atlas que será sua connection string e, em seguida, apenas especificamos o nome do banco de dados e o usaremos mais tarde, quando obtermos as configurações das configurações do aplicativo, então salve isso agora que estamos prontos para Go e podemos começar a configurar o núcleo EF a seguir é muito bom configurar o núcleo EF com um novo provedor MongoDB para o núcleo EF é muito semelhante, na verdade, quase idêntico a como você faz isso com algo como SQL , então muito disso pode parecer familiar para você então o primeiro coisa que vamos fazer em nossos modelos é criar uma pasta um na verdade saberemos o que não vamos fazer em modelos vamos fazer isso dentro de uma nova pasta chamada serviços então nós vamos adicionar uma nova pasta chamada serviços mas, novamente, onde você coloca isso depende inteiramente de você essa é apenas a minha escolha pessoal então ins ide de serviços vamos adicionar uma nova classe que vamos chamar de contexto de banco de dados de reserva de carro vai estender o contexto de banco de dados então, novamente, é exatamente o mesmo que o núcleo EF padrão isso não é novo, então vamos adicionar nosso conjunto de bancos de dados, então este é o conjunto de tipos de documentos de propriedades, modelos, qualquer que seja o nome que você queira chamar para nosso banco de dados no núcleo do EF, então vamos chamá-lo de carros do a getter e Setter ainda não sabe sobre carros, então nós pode adicionar essa declaração usando então vamos fazer o mesmo para o conjunto de agendamentos de banco de dados que os agendamentos obtêm e definir lá nós Go em seguida, vamos fazer o construtor para o contexto GB de modo que ele apenas pegue as opções e passe ao baixo, mas não vamos fazer nada com isso e, em seguida, vamos uh pagar algum código que sobreit um método uh que você deve conhecer bem que está na criação do modelo, então estamos dizendo para passar no construtor de modelos então o construtor de modelos, vamos criar uma entidade de construtor de modelos para carros e para reserva agora, se você tem feito isso com o SQL antes de você estar usado para ver coisas como a tabela aqui, que é uma coisa SQL que o driver do MongoDB também suporta à coleção, então você pode fazer a coleção e o nome da coleção, a razão pela qual não estamos fazendo isso aqui é porque nós adicionou que Go em frente e crie nossos modelos para nós e isso é tudo o que precisamos fazer para o contexto do DB de reserva de cartão. A próxima coisa que precisamos fazer então é definir as configurações do aplicativo para que você se lembre que criamos o modelo de configurações do MongoDB que usaremos para armazene-os as configurações, então agora nós realmente precisamos colocá-los nas configurações do aplicativo, então vamos colar nossas configurações do mongod aqui então substituí-las pelas suas próprias para que fique algo como DB mais SRV seu nome de usuário sua senha e seu cluster [Musi c] URL Compartilhará um link na descrição abaixo que informará como você pode obter sua connection string do Atlas e, em seguida, passaremos o nome do banco de dados que, neste caso, é car automation, então faça isso para ambas as configurações do aplicativo e configurações de aplicativos. JSON , como você pode visualizar, não estou colocando minha connection string aqui no vídeo só porque não preciso dela, mas sim em um segundo fora da gravação Go em frente e atualize essas configurações para que você ll terá o mesmo que você então agora que temos essa string de conexão e detalhes lá, podemos Go em frente e atualize nosso arquivo de programa [Música] para ter a referência de contexto do banco de dados e começar a usá-lo então vamos adicionar aqui, depois dos comandos que visualizamos, vamos adicionar algumas linhas de código que apenas armazenarão as configurações sobre as quais conversamos, então vamos exibi-las aqui, então isso está significando pegar a seção de configurações do MongoDB das configurações do meu aplicativo, então este um ele irá convertê-lo em um modelo de configurações do MongoDB e, em seguida, configurá-lo com essa seção então, se você não for, saberá se fez algo com ef core antes ou asp.net isso não é nada novo, então vamos adicionar esse contexto passando as opções, mas estamos dizendo em nossas opções em vez de som algo como usar SQL e disser que vai ser usado MongoDB, passamos o URI do Atlas e também passamos o nome do banco de dados e, com um pouco de você sabe o manuseio de nulos aqui e, assim, temos nosso contexto de banco de dados configurado com núcleo ef pronto para ser usado na próxima seção em que adicionaremos nossos serviços algumas pessoas gostariam de falar com seu contato de banco de dados diretamente do local em que precisam, como os comandos, mas eu preferia fazer uma separação, então nesta seção nós 'vamos criar os serviços, então vamos ter uma interface para o serviço de carros e o serviço de agendamento e, em seguida, a implementação. Então, só para limpar as coisas, vamos Go em frente e feche todas as guias na pasta de serviços vamos adicionar nossa interface, então vamos adicionar um novo item vamos chamá-lo de I car service O Visual Studio saberá automaticamente que é uma interface que é realmente útil, então vamos copiar tudo isso e vamos colá-lo, então isso está fazendo exatamente como você espera que nós só tenhamos alguns métodos que você agora está disponível na interface ou podemos obter todos os carros podemos obter um carro pelo ID podemos adicionar um carro editar um carro ou excluí-lo para que você saiba as operações CRUD que você esperaria, então podemos Go em frente e adicione essa implementação, então vamos adicionar uma classe que vamos chamar isso de serviço de carro, previsivelmente, que voltaremos para implementar o serviço de iar e agora podemos obter Visual Studio para implementar essa interface, então você notará que ele adiciona métodos em uma ordem diferente à nossa interface, mas isso é só porque o padrão é ordem alfabética, então o que vamos fazer é começar a implementar esses métodos, mas antes de fazer isso vamos adicionar algumas propriedades aqui, uma propriedade e o Construtor, portanto, precisamos acessar o contexto do banco de dados do cartão para que possamos chamá-lo para fazer alterações em nossos métodos, então criaremos um campo de apoio local aqui então bom e simples, então a primeira coisa que vamos fazer é adicionar, então vamos dizer aqui no anúncio que vamos fazer, vamos chamar o contexto do cardb que vamos apenas adicionar esse carro novo também vamos fazer algumas linhas de código para o rastreamento de alterações, pois esse tutorial mostra que ele também tem o rastreamento de alterações como parte do núcleo da EF com esse fornecedor, então vamos apenas consoles apenas para mostrar que isso está acontecer, é claro que, se você estiver fazendo isso em produção, provavelmente usará algo como o ileogger para salvar oficialmente esse rastreamento de alterações, mas como essa é apenas uma amostra rápida, vamos fazer à moda antiga com o console. linha direita e vamos apenas solicitar que ela faça a visualização longa porque isso só nos fornece mais algumas informações; depois disso, a última coisa que vamos fazer nesse método é apenas dizer: salve essas alterações, ótimo, então adicione feito em seguida, vamos passar para excluir, então vamos copiar e colar algum código aqui porque ele será bem parecido, então tudo o que estamos dizendo aqui é porque, na verdade, estamos excluindo um carro que já existe de que precisamos para Go e dizer pegue esse carro para nós e então verificar se ele existe ou não se existe, então peça para ser removido e então as mesmas linhas novamente nós apenas solicitamos que ele detecte as alterações imprima a depuração Visualize e salve as mudanças que também temos mais uma rápida aqui, então se um carro não existir, apenas deixamos o aplicativo mais atualizado ou o usuário saiba que o carro não pode ser excluído em seguida é editar e isso segue um padrão muito semelhante para a exclusão, pegaremos o carro, mas, neste caso, se o carro não for nulo, a primeira coisa que devemos fazer é obtemos os detalhes do carro atualizado que foi passado e atualizamos as propriedades desse carro, depois atualizamos e novamente imprimimos o rastreamento de alterações e uma mensagem de erro muito semelhante aqui em baixo é obter todos os carros, então esse será bem simples mas com algumas coisas que seu e-mail pode não ter visto antes, então vamos retornar carros de contexto C DB que vamos fazer um pedido porque queremos devolvê-los na ordem em que foram adicionados agora algo que você pode ou não saber é que o campo de ID do objeto em documentos do M Mong ba é armazenado como parece um bem, mas sob o capô, como são gerados por AO para você, são realmente gerados de uma forma que pode ser capturada cronologicamente então, ordenando-o pelo ID , estamos realmente obtendo-o de volta na ordem em que foram adicionados, o que é perfeitamente opcional Eu apenas gostaria de fazer isso então vamos adicionar uma cadeia uh em um núcleo aqui chamado rastreamento asno que vem de Núcleo EF, porque sabemos que estamos apenas lendo, não queremos um y mudanças que estamos apenas dizendo especificamente não se preocupar com o rastreamento aqui porque sabemos que não estamos fazendo nada, é uma daquelas coisas que é apenas uma boa prática de se fazer na produção, então estamos apenas adicionando aqui apenas para boa prática e então estamos ID sim, pegue os carros primeiro, todos padrão com seu ID legal, então esse é o serviço de carros feito agora podemos implementar o serviço de reserva de carros, assim como com o serviço de carros, vamos criar uma interface e uma implementação para que o primeiro a única coisa que vamos fazer é adicionar um novo item vamos chamar isso de serviço de reserva sem novidade vai copiar e colar algumas informações aqui, então esses são apenas os métodos de você para declarar que é tudo muito semelhante ao carro que nós temos o get all get by ID adicionar, editar e excluir então agora nós c e adicionar a implementação para que possamos adicionar um novo item e este será o nosso serviço de agendamento, podemos dizer que isso implementará nosso serviço de agendamento novamente implementar a interface e a primeira coisa que vamos fazer é ir para, assim como no serviço de automóveis, obtermos o livro e o contexto, também vamos fazer um construtor que o utilize como parâmetro e Go atribuí-lo lá, então a primeira coisa que 'vamos fazer, então, é implementar anúncio então vamos dizer que o cartão do livro vai copiar e colar do carro do livro novamente, assim como com um carro um é vamos pegar o carro para que possamos conhecer o carro que vai para a reserva se o carro do livro não for nulo ou for nulo, então vamos lançar uma exceção, caso contrário, atualizaremos nossa reserva para dizer que o modelo de carro associado é um modelo da atualização do carro para dizer que está reservado e, em seguida, as coisas usuais para o núcleo F, em que estamos chamando de atualização porque queremos atualizar o carro reservado para dizer h eie o que foi reservado agora, então vamos nos certificar de que ele saiba que o carro foi atualizado para ser reservado, em seguida, vamos adicionar a nova reserva e, em seguida, geralmente as alterações técnicas imprimem e salvam as alterações para que seja adicionar o próximo que vamos fazer é uh Excluir reserva então vamos copiar isso daqui e colar novamente de modo muito semelhante aos carros que vamos pegar o carro reservado porque, como você verá mais tarde em vamos atualizar para dizer que ele não está mais reservado diz que sim, lá Go você, o livro C não está mais reservado obtenha a reserva se encontrarmos uma, remova a reserva, mas também atualize o cartão para que ele saiba que é não está mais reservado e, em seguida, o de sempre com o tratamento de erros que vimos antes bom, então o próximo será editar, então vamos Go em frente e faça isso e novamente, como diz, todo o código que estou copiando e colando vem para a versão escrita deste tutorial, que você pode encontrar como um link abaixo, então vamos fazer a edição a seguir e diremos que estou vai copiar e colar tudo bem, como antes, bom e simples, salve isso e depois vamos apenas fazer a reserva, então de novo que vai ser como este carro, mas para as reservas então o contexto de lançamento do carro reserva do car dot um um pedido por ID vamos fazer agendamentos para bb o ID como sem rastreamento novamente e depois como um inumerável legal e então este vai ser como você esperaria que o agendamento seja feito por ID legal então esses são nossos serviços implementados mas o que nós precisamos fazer agora antes de passarmos para o próximo estágio é apenas adicioná-las à injeção de dependência, então você sabe que adicionamos as interfaces e tudo, mas realmente precisamos dizer à injeção de dependência para fazer uso de estes então o que vamos fazer aqui é que vamos apenas dizer que o Builder doservices adiciona o escopo então enquanto estiver no escopo vamos fazer isso para que eu faça o serviço do carro e faça o mesmo novamente para o serviço de agendamento de novo, isso é apenas o padrão C nada de novo, legal então agora que fizemos isso podemos Go o implementar nossos modelos de visualização os modelos de visualização são técnicamente opcionais, mas eu só gostaria de fazer o desacoplamento no aplicativo e os modelos de visualização agirem como um enviado entre a front-end e a back-end, então, neste caso, criaremos quatro modelos de visualização uma lista modelo de visualização e um modelo de visualização de anúncios para carros e agendamentos e eles serão usados mais tarde em nossas páginas de barbeador, então a primeira coisa que vamos fazer é adicionar uma nova pasta chamada modelo de visualização então adicione uma nova pasta que chamamos de modelos de visualização em seguida, vamos fechar todos esses outros arquivos apenas para manter as coisas limpas e ordenadas vamos adicionar um novo modelo de visualização o primeiro que vamos adicionar será nosso modelo de visualização da lista de carros e isso terá uma propriedade que será pública passível de passar ao tipo carros carros que precisamos fazer a declaração de uso lá Go nós, então a lista é feita a seguir vamos adicionar carros adicionar modelos de visualização este é um modelo de exibição que será usado quando nós adicionar um carro adicionar modelo de exibição este novamente só terá um método ui ch é carro público, método Lamento, propriedade carro público, vamos tornar esse carro opcional ou opcional anulável, então sim, neste caso, como não estamos recebendo uma lista completa, não será um inumerável de carros para os quais vamos tem uma propriedade simples que é o carro que vamos adicionar agora, só vamos fazer o mesmo novamente para a lista de reserva e o anúncio de reserva, então a visualização da lista de reserva modificada novamente será um simples I numerável, mas em vez de o carro está fazendo a reserva e por último, mas de forma alguma menos importante, vamos adicionar o modelo de anúncio de reserva V que é isso, então são todos feitos um a próxima coisa que precisamos fazer é adicionar isso para visualizar Importações para visualizar Importações é como um global um uso para o seu front-end e, portanto, precisamos adicionar isso é que queremos usá-lo mais tarde para o front-end, então ele saberá quando estivermos dizendo que este é um tipo de modelo em que estamos usando destas páginas de frontend é aqui que ela vem, então está à vista de visualizações Importações que só queremos ter certeza de que t está lá, então queremos fazer isso em usar o sistema de reserva de super cartão. modelos de visualização e com isso feito terminamos com os modelos de visualização agora que temos o backend concluído incluindo os serviços e os modelos de visualização é hora de começar a usar nosso front-end e vamos começar com os comandos e nós' Vamos ter dois comandos, um para o carro e outro para a reserva, então a primeira coisa que vamos fazer é um para carros, então vamos adicionar um novo comando aqui, então vamos adicionar comando, vai para nos dar uma lista de modelos para escolher, então no nosso caso queremos vazio, então vamos chamar isso de controlador de um carro e não de controlador de casa controlador de um carro [Música] a primeira coisa que vamos fazer é adicionar uma referência ao nosso serviço de carro, então ele será somente leituraI serviço de carro, chame-o serviço de carro e então vamos Go em frente e substitua e não substitua, adicione um Construtor o que não está satisfeito com oh, eu faço isso no lugar errado, tola, então mova isso para o lugar correto deve estar dentro da classe e não do espaço de nome, então temos uma referência erência ao nosso serviço automático que podemos começar a usar para que o front-end fala com o serviço o serviço fala com o banco de dados então agora temos um índice então vamos começar a atualizar o índice para ter que ser a página que visitamos então vamos dizer aqui sim, então estamos criando um novo modelo de visualização sem carro e estamos dizendo que a propriedade de carros dentro desse modelo de visualização será o resultado de colocar todos os carros no serviço de carros então retornar que visualização, então visitamos a página mais tarde e ela chama o índice ele produzirá uma lista de todos os carros bons então a seguir vamos adicionar alguns métodos para a operação CRUD então neste caso já fizemos leitura por índice então crie atualizar e excluir, vamos ter dois métodos, cada um será uma obtenção HTTP e o outro será uma postagem HTT, então não precisamos adicionar nenhum atributo a esse próximo método porque, um, padrões a serem obtidos, então só vamos dizer adição de resultado da ação de visão pública e só vamos dizer return view the re Assim que fizermos isso, não vamos fazer nada no momento, vamos apenas mudar para uma nova página que você verá mais tarde, então vamos apenas salvar isso então temos que fazer a postagem é um pouco em que, depois de termos ido para uma nova página que criaremos mais tarde, assim que a salvarmos, que chamará a versão Post disso, então copiei e colei algum código, mas eu dirá o que ele está fazendo, então especificamos que é uma postagem e, em seguida, passamos a ele aquele modelo de visualização do carro se o estado do modelo for válido para que todos os campos estejam corretos e se estiver satisfeito com os valores criaremos um novo carro com ele com Esses detalhes, basta adicionar o carro e retornar ao índice se ele não for válido, apenas retornaremos a mesma visualização novamente com o modelo de visualização da corrida de carro então, essencialmente, se não funcionar, recarregue a mesma página para que eles tenham a oportunidade de corrigir o que estiver errado com a edição da página será um pouco mais complexa, então, novamente, ela terá que obter uma obtenção e um publicar, começaremos com get então pegaremos o ID e estamos usando string aqui por ser um tipo de dados que o front-end entende se o ID for nulo retornará não encontrado caso contrário, passaremos o ID como um ID de objeto para o nosso serviço de carros e retornar a visualização com esse carro específico e então vamos fazer a versão pós para edição de modo que esteja levando um carro para ser editado se for válido então editar o carro e Go ao índice caso contrário retorne uma solicitação incorreta se algo der errado fora do estado do modelo e, em seguida, adicione uma seta de modelo que capturaremos no front-end que diz que falhou e, se você não estiver retornando ao índice porque algo deu errado, mas não é ruim solicitar, em seguida, apenas retornar a visão do carro um pouco como com editar a edição um com o sim com a edição anterior um não editar o anúncio ver o desenvolvedor lá não podemos misturar nossas palavras mas sim como com ADD se houver um problema A visualização com o mesmo objeto novamente para que o usuário tenha a oportunidade de corrigir então, finalmente, excluímos, então temos a versão de obtenção que é muito semelhante à edição, mas o motivo pelo qual temos uma página separada de exclusão que você verá mais tarde é apenas porque mostramos informações diferentes, então a postagem de exclusão é um pouco mais envolvido, então estamos verificando se o carro existe e, em seguida, estamos tentando excluir o carro se o carro foi excluído com sucesso então adicionamos uh uma string aos dados temporários, que é uma maneira de compartilhar dados entre as páginas então nós apenas Go de volta ao índice, caso contrário, atualizamos a propriedade visualizar mensagem de erro de dados com uma mensagem de erro e se isso der errado, então apenas continuamos e diremos ei, o carro selecionado é este e depois devolvermos o carro selecionado para que eles possam fazer algumas alterações, então isso é o controlador de carro feito agora para o controlador de reserva e o controlador de reserva novamente será muito semelhante, então vamos adicionar um controlador, vamos fazer Outro vazio, vamos chamá-lo de controlador de reserva desta vez, assim como vimos com o atenda ao bo O controlador de verificação se importa tanto com o carro quanto com o serviço de agendamento, então vamos adicionar duas propriedades locais aqui, uma para o serviço de reserva e uma para o serviço de serviço de motorista, vamos inserir um construtor que usa algumas injeções de cabeçote no serviço de reserva e o serviço de carros atribua-os e, em seguida, assim como com o carro no índice, vamos criar um novo modelo de visualização obter todas as reserva então, novamente, eles são muito semelhantes, é o modelo de visualização de anúncio de reserva, atualize os detalhes com a reserva de carro que você está tentando atualizar adicione-o por meio do serviço e Go ao índice, vamos fazer a obtenção e publicar para edição em seguida. parece muito semelhante ao Car Service, e é por isso que estou passando por eles rapidamente, mas se você quiser dar uma olhada neles com mais detalhes, pode, é claro, dar uma olhada no tutorial escrito, então temos a edição usa uma string verifica se ele obtém as atualizações de reserva de tudo praticamente o t ele é o mesmo que o controlador do carro apenas para as reservas e, finalmente, podemos apenas excluir, colar que aqui Go nós, então vamos correr aqui de novo apenas excluir, fazer algumas verificações e excluir e Go ao índice se ele excluir com sucesso Go de volta à visualização e apenas adicionar algumas informações então, assim mesmo, adicionamos nossos comandos e agora temos algo com o qual nossos visualizadores frontend poderão conversar quando procurarem, usando a convenção de procurar os comandos com os nomes compartilhado pelo front-end agora que temos os comandos em vigor, podemos começar a criar as visualizações e as páginas do vi shard que se comunicarão com esses comandos, então Go em frente e fechamos todas as abas novamente. em novas visualizações vamos criar uma nova pasta sa então, obviamente, vamos criar uma pasta para carros uh carros e agendamentos, mas por enquanto vamos criar uma para carros, então vamos chamar a visualização de controle de car tudo bem essa subpasta então nós apenas isso é normalmente se você já viu asp.net Observe que essa é apenas uma convenção em que as visualizações Go para o nome da visualização será a pasta em que ela reside, então agora que criamos essa pasta vamos adicionar uma nova visualização então clique com o botão direito do mouse em adicionar uma visualização e certifique-se de escolher a visualização vazia clique em adicionar, vamos nomear manter este como padrão de índice então, se você se lembrar, temos um índice em nosso controlador, então esse índice fará referência a esse controlador para saber o que fazer então queremos adicionar um espaço reservado para o tratamento de erros se você se lembra de que antes nós fizemos coisas U em dados intm para se houver um erro, então o que queremos fazer é adicionar isso em então a primeira coisa que vamos fazer é adicionar o para o carro excluído isso é realmente um sucesso então nós só vamos dizer se se temp dat tem informações, então basta pop aa success e você verá mais tarde apenas aparecerá no topo, então vamos começar a lidar com todo o resto, então primeiro de tudo, se houver não há CS nenhum no banco de dados então queremos dizer ei, não há resultados, então o que vamos fazer é exibir o resto das informações, então explicarei o que está errado aqui no final, mas vamos adicione uma tabela para que fizemos o se agora estamos fazendo um El então se houver carros crie uma tabela isso está usando inicialização aulas de armadilha porque isso vem com s.net MVC pronto para uso, então podemos aproveitá-lo, então estamos criando nossos cabeçalhos para nossas propriedades que temos em nossas reservas não carros de reserva, bem como uma coluna de ações então estamos dizer que para cada carro que temos em nosso modelo de nossa propriedade de carros em nosso modelo de visualização de lista de carros, vamos fazer um Go por eles e exiba uma tabela uh uma célula sob essa coluna para cada informação, para a coluna de ações, adicionaremos alguns botões para que possamos Go editar o carro podemos excluir o carro se o carro não estiver reservado então também adicionaremos um botão para permitir eles para fazer a reserva e isso termina uma tabela e, no final, temos um botão que diz adicionar novo carro, então se você quiser adicionar um novo carro em vez de fazer qualquer coisa com os carros existentes, você tem esse botão lá também para que possamos Go em frente e salve que faz sentido ter isso como nosso índice porque estamos tendo um você queremos ter uma lista de carros como nossa página inicial, então precisamos nos certificar rapidamente de que em nosso program.cs nós realmente o atualizamos para que nossa rota padrão vá para o carro, então, em vez de para a casa, vamos apenas dizer Go para o carro, mas se clicarmos realmente nos botões agora nada aconteceria em nosso índice porque as visualizações para eles ainda não existem, então a primeira coisa que vamos fazer é adicionar uma visualização para adicionar carros, então vamos fazer uma nova visualização novamente adicionar e isso um será chamado de anúncio para especificar o modelo então, neste caso, o modelo será o nosso modelo de visualização de anúncios de carro, vamos fazer um H2 apenas para dar um pouco de título na página desta vez, em vez de verificar os dados temporários, vamos verificar os dados de visualização em busca de uma mensagem de erro. Portanto, se houver uma exibição que na página e agora podemos Go em frente e implemente um formulário, então cole-o aqui e depois como de costume, vamos falar sobre isso, então estamos criando um formulário de postagem para o controlador do carro para ad então onde vimos que tinhamos que obter e publicar para cada método endp oint o controlador que isso vai mapear para isso então isso Go para o endpoint Post do anúncio então ele apenas faz a validação e adiciona o rótulo para que possamos inserir as informações sobre os carros que queremos salvar e um botão para fazer isso bem agora, queremos ter certeza de que o usuário possa navegar de volta para a lista de carros se decidir não Go mais a ela, então vamos apenas adicionar um botão rápido na parte inferior aqui poderíamos formatá-lo, mas não importa muito, mas sim, basta clicar em um botão Voltar à lista apenas para o caso de já ser SC de cancelar se não quisermos mais, faça isso então isso é editar agora vamos adicionar agora estamos fazendo edição, então adicionaremos uma nova visualização para chamar essa e surpreendentemente editar, então vamos fazer isso e adicionar o modelo e o H2 novamente então desta vez temos um modelo de um carro em vez de um modelo de visualização e vamos dizer que estamos atualizando o modelo a partir desse modelo vai ser outro rápido formulário com um botão na parte inferior, então vai parecer muito semelhante desta vez estamos dizendo que é ele chama o ponto de extremidade de edição façamos alguma validação aqui também temos esse tipo de entrada oculto para ID aqui porque não precisamos realmente exibir o ID na página, mas precisamos associar o ID ao formulário para que ele saiba qual carro estamos editando porque é isso que será passado para o método de edição, então novamente são apenas alguns formulários com algumas informações em e um botão na parte inferior se você quiser Go para a lista de carros e depois vamos excluir então vamos adicionar uma visualização para excluir vamos adicionar no modelo usual H2 e verificar se erros, mas vamos fazer algo ligeiramente diferente aqui, então em vez de usar um formulário, vamos usar um divis e um tipo diferente de tag então DL então eu meio que parei para dizer não de qualquer forma sim então aqui o que que estamos fazendo não é um formulário porque não precisamos de nada para alterar este não é um formulário editável para o usuário i t é informativo, então estamos exibindo o modelo, o número da placa e o local, então é só para dizer que você sabe que essas são as informações sobre o carro que você escolheu excluir, então adicionaremos um formulário então este é apenas um formulário para confirmando a exclusão, então, novamente, temos esse valor oculto, então estamos sugerindo excluir e, em seguida, desmarcar nósre actually doing a clever little JavaScript script here so weestamos dizendo oh, você tem certeza de que deseja excluir o carro para que ele lhe dê um bom pop-up para confirmar que eles realmente desejam excluí-lo e, em seguida, o padrão Go para a lista de carros para que possamos fechar todos eles agora e em seguida, podemos criar uma subpasta para a reserva C, então adicionaremos uma nova pasta que chamaremos essa reserva e, em seguida, vamos adicionar arquivos muito semelhantes que tinhamos antes, então, novamente, vamos adicionar uma visualização e este para listar aqueles que serão chamados de índice, vamos copiar o código que este bom parece muito semelhante, então estamos verificando se há informações de dados temporárias sem resultados e, em seguida, fazendo um cabeçalho e, em seguida, linhas para as informações mais ações, mas em neste caso, não vamos ter uma ação para uh agendamento porque já estamos em agendamentos então isso apenas exibe as agendamentos bom agora podemos adicionar então vamos adicionar uma visualização vamos chamar isso de novo, é praticamente a mesma coisa que temos a reserva, temos o se e um formulário apenas para receber o mas desta vez isto é que temos uma data, então onde temos a data de início e a data de término da reserva eles são de data hora então acabamos de especificar aqui que esta é realmente uma data então isso apenas personalizará o frontend para que você realmente tem seletores de data aqui em vez de apenas uma caixa de texto, o que apenas ajuda com um pouco de validação de dados e também é apenas uma experiência mais legal você tem menos probabilidade de obter formatação estranha porque é um tipo de data, então você não precisa verificar isso, mas também significa que você tem um seletor de datas que é mais legal para o usuário então vamos fazer edição para adicionar uma visualização isso será editado para adicionar tudo isso para editar outro formulário novamente oculto ID muitos deles são muito parecidos com esses exibições o botão de confirmação verifica que você realmente deseja excluir a reserva e então tem o botão em e de volta para Go à lista para que lá estejamos, se quiser ver o código completo de para tudo isso, você pode para Go Github Go o Reaper, que terá o link abaixo e, é claro, como mencionei alguns de vezes se quiser por este passo a passo e quiser o código para copiar e colar, você também pode encontrar isso no tutorial escrito nos links abaixo então agora que temos isso é hora de testar nosso aplicativo eu cometi então o erro que cometi é que no índice do carro Esqueci de adicionar o modelo de visualização da lista de carros como um modelo na parte superior, então se às visualizações abaixo do carro e para Go o índice no topo aqui,Go preciso adicionar modelo de visualização da lista de carros, então se eu em frente e executar Go isso agora, descobriremos que ele funciona novamente agora, no meu caso, você verá quando estiver oads que, como eu tenho a versão do tutorial escrito disso, na verdade, adicionei alguns dados fictícios ao banco de dados uh para carros, você verá alguns carros listados então o seu você não verá isso, mas verá o botão para adicionar Go um carro, então aqui estamos temos alguns carros que já existem temos os cabeçalhos que vimos AIT temos os cabeçalhos que vimos e os botões de ação e podemos adicionar um novo carro para, por exemplo, podermos adicione um carro novo aqui e podemos fazer o VW. Veja o Polo um pouco diferente do seu número da placa. Se pudermos criar um local, apenas devolvemos 14 o aeroporto de Man CU primeiro, adicione um carro e lá temos nosso carro existente, mas talvez tenhamos resolvido que queremos mudar o carro do aeroporto para o centro da cidade para que possamos clicar em editar, podemos -lo para que possamos fazê-lo Go a semana para que possamos e dizer oh eu gostaria de reservá-lo talvez eu queira reservá-lo de hoje até o dia para que possamos reserva o carro, então Go digitei lá, mas você também pode e fazer por meio do um para o componente seletor 30de datas, configuramos isso de modo que, se um agendamento for bem-sucedido, ele nos Go levará de volta à página de índice desse controlador a partir dessa instância de agendamento para que você possa ver aqui que temos nossa lista de agendamentos se se você quiser à nossa página inicial, podemos simplesmente excluir a reserva aqui e você pode ver Go aqui que ainda temos nossos três carros listados, mas agora o botão de reserva contra o pólo desaparece porque nós o reservamos poderíamos à reserva e poderíamos dizer que não é aquele, não Go se deixe esquecer a barra à reserva, poderíamos dizer que exclua a reserva no Go modelo da propriedade que a página de confirmação aparece, podemos excluir 3 a reserva e, em seguida, podemos à rota para a lista Go e você pode ver agora que o botão de reserva apareceu de volta para o Testa M odel legal, também podemos em 3 frente e uh editar Go carros poderíamos talvez um alterar outros detalhes além do local, mas também podemos excluí-los para que possamos em frente e exclua Go o pólo que acabamos de adicionar, mas não queremos a fazer isso porque já temos uma reserva, então o que vamos fazer é excluir a captura de Runo, então vamos clicar em excluir uma página muito semelhante aparecerá, mas desta vez para o carro, em vez da reserva, exclua clique em excluir carro ele será excluído com sucesso, você receberá a mensagem na parte superior aqui e verá que ele não está mais na lista aplicativo de etapa completa em funcionamento que aproveita os novos provedores do de Bo que mongod está atualmente em pré-visualização para dar uma olhada no roteiro disponível como um link na descrição abaixo onde você pode ver quais recursos estão por vir no plano para o novo codificação satisfeita do fornecedor

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Vídeo
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Envio e solicitação de dados do MongoDB em um jogo Unity


Sep 09, 2024 | 8 min read
Tutorial

Consulte seus dados com o ASP.NET Core, o OData e o provedor do MongoDB Entity Framework Core


Jul 08, 2024 | 7 min read
Tutorial

Projetando e desenvolvendo níveis de jogos 2D com Unity e C#


Feb 03, 2023 | 7 min read
Tutorial

Aplicativos multiplataforma com capacidade de dados online/offline com o MongoDB Atlas, SDKs para dispositivos Atlas e .NET MAUI


Nov 14, 2023 | 6 min read