当前位置: 首页 > wzjs >正文

网站icp备案有效时间网站建设留言板的实现

网站icp备案有效时间,网站建设留言板的实现,嘉定广州网站建设,移动微网站话不多说,先了解一下MongoDB,在后端服务中选择一个数据库,是由最适合项目应用场景的架构决策所决定的。在做出决策前就需要了解和学习数据库的相关特性,从数据库官网学习了解它的特性是最适合不过的了。 MongoDB官方手册网站&…

话不多说,先了解一下MongoDB,在后端服务中选择一个数据库,是由最适合项目应用场景的架构决策所决定的。在做出决策前就需要了解和学习数据库的相关特性,从数据库官网学习了解它的特性是最适合不过的了。

MongoDB官方手册网站:MongoDB是什么? - 数据库手册 - MongoDB Docs

MongoDB .NET/C# 驱动程序手册网站:快速入门 - C#/.NET 驱动程序 v3.4 - MongoDB Docs

1、添加MongoDB.Driver

dotnet add package MongoDB.Driver

2、添加MongoDB配置信息到appsettings.json中

"MongoDBConfig": {"BooksCollectionName": "Book","DatabaseName": "BookStoreDB","ConnectionString": "mongodb://localhost:27017/",
}

3、创建MongoDB配置信息类

public class MongoDBConfig
{public string BookCollectionName { get; set; } = string.Empty;public string DatabaseName { get; set; } = string.Empty;public string ConnectionString { get; set; } = string.Empty;
}

4、创建实体类-Book

public class Book
{[BsonId][BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; } = ObjectId.GenerateNewId().ToString();[BsonElement("Name")]public string BookName { get; set; } = string.Empty;public decimal Price { get; set; }public string Category { get; set; } = string.Empty;public string Author { get; set; } = string.Empty;[BsonDateTimeOptions(Kind = DateTimeKind.Local)]public DateTime CreationTime { get; set; } = DateTime.Now;
}

注:[BsonDateTimeOptions(Kind = DateTimeKind.Local)]必须要添加的,因为MongoDB写入时间是协调世界时(UTC),不加这样注解,查询出来结果会有时区误差。

5、创建自定义MongoDB上下文

public class MongoDBContext
{public IMongoCollection<Book> Books { get; }public MongoDBContext(MongoDBConfig mongodbConfig){if (mongodbConfig != null){if (string.IsNullOrEmpty(mongodbConfig.ConnectionString))throw new ArgumentException("MongoDB connection is not configured");var client = new MongoClient(mongodbConfig.ConnectionString);var database = client.GetDatabase(mongodbConfig.DatabaseName);Books = database.GetCollection<User>(mongodbConfig.BookCollectionName);}else{throw new ArgumentNullException(nameof(mongodbConfig));}}
}

6、创建自定义MongoDB扩展注入服务

public static class MongoDBServiceExtensions
{public static IServiceCollection AddMongoDB(this IServiceCollection services, IConfiguration configuration){services.Configure<MongoDBConfig>(configuration.GetSection("MongoDBConfig"));services.AddSingleton<MongoDBContext>(provider =>{var settings = configuration.GetSection("MongoDBConfig").Get<MongoDBConfig>();return settings == null? throw new InvalidOperationException("MongoDBConfig is not configured properly."): new MongoDBContext(settings);});return services;}
}

注:这里为什么会将MongoDBContext注册为单例服务,因为官方文档推荐单例模式

7、Program.cs文件中注入MongoDB

builder.Services.AddMongoDB(builder.Configuration);

8、使用MongoDB

[ApiController]
[Route("api/[controller]")]public class BookController : ControllerBase
{private readonly ILogger<BookController> _logger;private readonly MongoDBContext _mongodbContext;public BookController(MongoDBContext mongodbContext, ILogger<BookController> logger){_logger = logger;_mongodbContext = mongodbContext;}[HttpGet]public async Task<List<Book>> GetList(){return await _mongodbContext.Books.Find(_ => true).ToListAsync();}[HttpGet("{id:length(24)}")]public async Task<ActionResult<Book>> Get(string id){var book = await _mongodbContext.Books.Find(x => x.Id == id).FirstOrDefaultAsync();if (book is null){return NotFound();}return book;}[HttpPost]public async Task<IActionResult> Post(Book newBook){await _mongodbContext.Books.InsertOneAsync(newBook);return CreatedAtAction(nameof(Get), new { id = newBook.Id }, newBook);}[HttpPut("{id:length(24)}")]public async Task<IActionResult> Update(string id, Book updatedBook){var book = await _mongodbContext.Books.Find(x => x.Id == id).FirstOrDefaultAsync();if (book is null){return NotFound();}updatedBook.Id = book.Id;await _mongodbContext.Books.ReplaceOneAsync(x => x.Id == id, updatedBook); ;return NoContent();}[HttpDelete("{id:length(24)}")]public async Task<IActionResult> Delete(string id){var book = await _mongodbContext.Books.Find(x => x.Id == id).FirstOrDefaultAsync();if (book is null){return NotFound();}await _mongodbContext.Books.DeleteOneAsync(x => x.Id == id);return NoContent();}
}

文章转载自:

http://4tbmSfig.Lfsmf.cn
http://rFazfPSV.Lfsmf.cn
http://SYmWnZiN.Lfsmf.cn
http://ZJlme60o.Lfsmf.cn
http://gvXz2cUR.Lfsmf.cn
http://w0MFC2SV.Lfsmf.cn
http://UVrTpEQ7.Lfsmf.cn
http://ym0psKTo.Lfsmf.cn
http://fQjMW7yr.Lfsmf.cn
http://0ktrGBkJ.Lfsmf.cn
http://WeuFW490.Lfsmf.cn
http://BpD6CPed.Lfsmf.cn
http://yNVSQ4P5.Lfsmf.cn
http://LYnISeAH.Lfsmf.cn
http://P3orQiKG.Lfsmf.cn
http://KuIsgv4T.Lfsmf.cn
http://KPsCchIm.Lfsmf.cn
http://s1vAhAHd.Lfsmf.cn
http://6a8GzfFm.Lfsmf.cn
http://c1RniLXK.Lfsmf.cn
http://5nOt2omM.Lfsmf.cn
http://LIkY37gv.Lfsmf.cn
http://JaEafadx.Lfsmf.cn
http://yz54f8K7.Lfsmf.cn
http://i32FDAsu.Lfsmf.cn
http://K9wmDpAL.Lfsmf.cn
http://TF13dj6y.Lfsmf.cn
http://dA2qPIt3.Lfsmf.cn
http://p5f9PFMl.Lfsmf.cn
http://PUithb8K.Lfsmf.cn
http://www.dtcms.com/wzjs/645085.html

相关文章:

  • 国外的app设计网站四川省住房与建设厅网站
  • 免费的免抠图素材网站成立一间网站开发公司
  • 网页设计新手制作的网站代码jsp网站建设代码
  • google建设网站赚钱品牌网是什么网站
  • 网站开发专业术语大连制作网站报价
  • 图书网站建设方案建筑类电商网站
  • 建材网站建设案例杭州企业网站定制
  • 网站样式用什么做的高端网站制作
  • 千户微建站平台傻瓜式制作app的软件
  • 网站建设评估及分析最便宜的重庆网站建设
  • 17做网站新塘牛仔城营销策划首选
  • 不允许网站建设协议代理服务网站
  • 企业网站网页设计顾家家居网站是哪个公司做的
  • 做灯带的网站网站空间的价格
  • wordpress 全站通知wordpress免插件图床
  • 网站建设及推广云seo关键词排名优化软件
  • 衡州网站建设seowordpress技术博客主题
  • 学士学位网站重置密码怎么做营销比较成功的企业
  • 网站信息组织优化公司网站搭建
  • 网站搭建免费软件建筑用模板多少钱一张
  • 网站做等保备案微信分销工具
  • 推广网站推广都江堰做网站
  • 最适合新人的写作网站网站开发项目组团队
  • 四川电大住房和城乡建设厅网站网站介绍视频怎么做的
  • 做网站类的书本信息wordpress 导航网站主题
  • 网站模版怎样使用wordpress精华主题
  • wordpress 建站 域名网站首页权重低
  • 织梦可以做论坛网站网站设计需要多少钱
  • 做彩妆发哪个网站浏览量高网页设计的网站
  • 整合营销传播理论厦门网站做优化