zoukankan      html  css  js  c++  java
  • Asp.net Core Webapi for MongoDB

    Asp.net Core Webapi for MongoDB

    创建asp.net core webapi 3.1

    1、 配置连接字符串

      "BookstoreDatabaseSettings": {
        "BooksCollectionName": "Books",
        "ConnectionString": "mongodb://localhost:27017",
        "DatabaseName": "BookstoreDb"
      },
    

    2、添加实体类

    新建一个Models文件夹,添加一个Book实体类

    public class Book
    {
        [BsonId]
        [BsonRepresentation(BsonType.ObjectId)]
        public string Id { get; set; }
    
        [BsonElement("Name")]
        public string BookName { get; set; }
    
        public decimal Price { get; set; }
    
        public string Category { get; set; }
    
        public string Author { get; set; }
    }
    

    3、添加Book的操作类

     public class BookstoreDatabaseSettings : IBookstoreDatabaseSettings
     {
         public string BooksCollectionName { get; set; }
         public string ConnectionString { get; set; }
         public string DatabaseName { get; set; }
     }
    
     public interface IBookstoreDatabaseSettings
     {
         string BooksCollectionName { get; set; }
         string ConnectionString { get; set; }
         string DatabaseName { get; set; }
     }
    

    4、添加services类

     public class BookService
     {
         private readonly IMongoCollection<Book> _books;
    
         public BookService(IBookstoreDatabaseSettings settings)
         {
             var client = new MongoClient(settings.ConnectionString);
             var database = client.GetDatabase(settings.DatabaseName);
    
             _books = database.GetCollection<Book>(settings.BooksCollectionName);
         }
    
         public List<Book> Get() =>
             _books.Find(book => true).ToList();
    
         public Book Get(string id) =>
             _books.Find<Book>(book => book.Id == id).FirstOrDefault();
    
         public Book Create(Book book)
         {
             _books.InsertOne(book);
             return book;
         }
    
         public void Update(string id, Book bookIn) =>
             _books.ReplaceOne(book => book.Id == id, bookIn);
    
         public void Remove(Book bookIn) =>
             _books.DeleteOne(book => book.Id == bookIn.Id);
    
         public void Remove(string id) =>
             _books.DeleteOne(book => book.Id == id);
     }
    
    

    5、注册服务

    在setup.cs ConfigureServices 里面注册服务

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<BookstoreDatabaseSettings>(
           Configuration.GetSection(nameof(BookstoreDatabaseSettings)));
        services.AddSingleton<IBookstoreDatabaseSettings>(sp =>
             sp.GetRequiredService<IOptions<BookstoreDatabaseSettings>>().Value);
        services.AddSingleton<BookService>();
    
        services.AddControllers();
    }
    
  • 相关阅读:
    Centos 6 安装python2.7.6
    更新centos系统的python版本
    centos中wget的使用方法
    开启apahce的mod_speling.so模块,让使用apahce http服务器不再有大小写烦恼
    开启server-status失败
    TCP三次握手与四次挥手
    GitHub入门和项目托管
    使用javac,手动编译一个java文件的方法
    《TomCat与Java Web开发技术详解》(第二版) 第四章节的学习总结--常用Servlet API
    《TomCat与Java Web开发技术详解》(第二版) 第三章节的学习总结--利用Context元素来自定义web应用的存储位置
  • 原文地址:https://www.cnblogs.com/qzdd/p/12311116.html
Copyright © 2011-2022 走看看