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();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值