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();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章