首页 程序笔记 C#使用EntityFrameworkCore ORM方式操作MongoDB数据库

C#使用EntityFrameworkCore ORM方式操作MongoDB数据库

Entity Framework Core Provider 通过将数据映射到 .NET 对象来简化对 MongoDB 集群中数据的操作。

MongoDB Atlas 是一种完全托管的云数据库服务,可在 MongoDB 集群上托管您的数据。在本指南中,我们将向您展示如何开始使用您自己的免费(无需信用卡)集群。

按照以下步骤将 Entity Framework Core Provider 应用程序连接到 MongoDB Atlas 集群。

MongoDB.EntityFrameworkCore安装

dotnet add package MongoDB.EntityFrameworkCore --prerelease

BaseDbContext基类

public class BaseDbContext: DbContext
 {

     protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
     {
         var connectionString = "mongodb://localhost:27017";
         optionsBuilder.UseMongoDB(connectionString, "sample_mflix");
     }
 }

Collection DbContext操作类

internal class MflixDbContext : BaseDbContext
{
    public DbSet<Movie> Movies { get; init; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<Movie>().ToCollection("movies");
    }
}

Collection实体类

internal class Movie
{
    public ObjectId _id { get; set; }
    public string title { get; set; }
    public string rated { get; set; }
    public string plot { get; set; }
}

查询Collection数据

var db = new MflixDbContext();

  List<Movie> listMovie = db.Movies.Where(m => m.title == "Pluto").ToList();
Console.WriteLine(listMovie[0].plot);

删除Collection数据

var db = new MflixDbContext();
 db.Movies.rtRemove(listMovie[0]);
 db.SaveChanges();

插入Collection数据

db.Movies.Add(new Movie()
 {
     title = "Pluto",
     rated = "ia",
     plot = "asdd",
 });
 db.SaveChanges();

批量插入Collection数据

 var movies = new[]
 {
     new Movie()
     {
         _id = ObjectId.GenerateNewId(),
         title = "Pluto1",
         rated = "ia1",
         plot = "asdd1",
     },
     new Movie()
     {
         _id = ObjectId.GenerateNewId(),
         title = "Pluto2",
         rated = "ia2",
         plot = "asdd2",
     }
 };
 db.Movies.AddRange(movies);
 db.SaveChanges();

更新Collection数据

Movie movie = db.Movies.Where(m => m.title == "Pluto").FirstOrDefault();
movie.title = "更新数据";
db.Movies.Update(movie);
db.SaveChanges();

静态运行效果图

参考文档

https://www.mongodb.com/docs/entity-framework/current/quick-start/

3

站星网

Entity Framework Core Provider 通过将数据映射到 .NET 对象来简化对 MongoDB 集群中数据的操作。 MongoDB..

为您推荐

mongodb 数据备份

MongoDB 的数据备份主要分为逻辑备份、物理备份及托管云备份三种方式,具体选择取决于您的部署环境和数据量大小。1. 逻辑备份:使用 mongodump 和 mongorestore这是最常用的备份方式,适用于小型部署或特定数据库/集..

数据库表设计

字节首先需要达成共识的是:1个Byte字节等于8个bit位。bit是最小一级的信息单位,可以表示一个0或1(即二进制);字符字符其实是一个统称,字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号都属于字符..

【大数据高并发核心场景实战】 数据持久化层 - 查询分离

1. 业务场景适用场景:数据查询缓慢(数据量大导致、数据聚合时调用外部系统过多导致等)写数据效率尚可所有数据都可能修改(若存在冷数据,可使用上一章的冷热分离方案)基本思路:将更新的数据放在主数据库里,而..

MongoDB 连接账号配置详解:从创建用户到安全最佳实践

为什么需要配置连接账号在默认安装状态下,MongoDB 是可以匿名访问的,这意味着任何人都可以连接并执行操作。为了防止未授权访问、数据泄露或篡改,我们需要开启认证机制,并为访问数据库的用户配置账号与角色权限。..

Windows 系统如何安装 MongoDB 数据库:详细步骤指南

准备工作在开始安装之前,请先做好以下准备:确保你的 Windows 系统为 64 位版本,且满足 MongoDB 的系统要求。从官方页面下载最新版的 MongoDB Community Server 安装包。确定你具有管理员权限,以便安装服务、修改..

.NET Core 中替代 System.Drawing 的图像处理库:ImageSharp、SkiaSharp、Magick.NET 等对比分析

随着 .NET Core / .NET 6+ 平台对跨平台支持的加强,以及 System.Drawing.Common 在非 Windows 平台上的限制日益凸显,越来越多的开发者需要寻找合适的替代方案。微软从 .NET 6 起明确指出,System.Drawing.Common ..

Access to the path 'C:\Windows\TEMP\ASPNETCORE_xxx.tmp' is denied. 解决方法

.NET 网站上传文件时报错:System.InvalidOperationException: The exception handler configured on ExceptionHandlerOptions produced a 404 status response. This InvalidOperationException containing the ori..

在 ASP.NET Core 中:修改 appsettings 后程序会自动重启吗?详解与实践

在日常 ASP.NET Core 开发中,很多人疑惑:当修改 appsettings.json 或其他配置文件后,程序会自动重启吗?答案是:不一定。具体行为取决于托管环境、配置加载方式、以及代码中是否支持“热重载”或&ldquo..

git版本管理全流程命令操作

git完整使用流程:# 1. 从远程仓库拉取代码git clone <repo link># 2. 从mian分支创建其他分支git checkout -b <my_branch># 3. 查看main分支最新提交,但不合并(pull会合并merge)git fetch origin# 3. 从远程仓库..

Web前端入门第 81 问:JavaScript cookie 的读写操作

前端的 cookie 读写在 2020 年之前一直不存在一个官方的接口,每次需要使用 cookie 的时候,要么是引入三方插件,要么就需要自己封装一个公用的组件或函数。npm 的 cookie 插件周下载量 6 千万左右,可以想象一下此..

.NET中全新的MongoDb ORM框架 - SqlSugar

.NET中好用的MongoDb ORM很少,选择也很少,所以我打造了一款适合SQL习惯的MongoDb ORM,让用户多一个选择。1、 MongoDB ORM教程1.1 NUGET 安装SqlSugar.MongoDbCoreSqlSugarCore1.2 已支持功能单表CRUD+分页+排序+..

.NET Core 图像处理:Magick.NET 与 SkiaSharp 的全面对比

随着 .NET Core 的发展,传统的 System.Drawing 库因其对 Windows 的依赖性和在跨平台应用中的限制,逐渐被其他图像处理库所取代。在众多替代方案中,Magick.NET 和 SkiaSharp 是最受欢迎的两个选择。本文将从多个维..

Mysql跨库操作

在 MySQL 中,操作多数据源(例如从库 A 和库 B)进行联查的情况,可以分为以下两种场景:A 库和 B 库在同一个 MySQL 实例当 A 库和 B 库在同一个 MySQL 实例下时,可以直接使用跨库联查查询。示例如下:SELECT A.co..

大数据领域面临的挑战与未来的演进趋势

序有群友提了一个关于大数据行业当前发展状况的问题。暂时先用GPT帮我们对此问题,搜罗和总结一二。其一,此问题较为宏大,需要结合个人实践、对行业的综合认知做深度思考,较为耗时。短时间内,懒于再一一总结和思..

openHalo:国产数据库Halo正式开源,迈向高性能兼容新时代

近日,国产数据库Halo迎来重要里程碑,正式宣布开源,项目命名为 openHalo,并已在GitHub上线(openHaloHitHub地址:https://github.com/HaloTech-Co-Ltd/openHalo)。openHalo旨在提供一个兼容MySQL协议、基于Postg..

Entity Framework(EF) Core 10新特性全面解析:提升开发效率的关键更新​

Entity Framework Core(EF Core)作为 .NET 平台的主流对象关系映射(ORM)框架,持续为开发者提供高效、灵活的数据访问解决方案。​在最新发布的 EF Core 10 中,微软引入了多项新特性,旨在简化数据库操作,提升..

如果单表数据量大,只能考虑分库分表吗?

程序员最怕啥?不是需求改八遍,也不是半夜报警电话,而是数据库突然卡成PPT!尤其是当单表数据冲到几千万行,查询慢得像老牛拉车,这时候团队第一反应往往是:“赶紧分库分表!”但兄弟,分库分表可不是什么温柔小..

PGlite:轻量级嵌入式PostgreSQL数据库使用方法

PGlite是一款基于PostgreSQL的轻量级嵌入式数据库,专为前端应用、无服务器环境和本地开发优化。与传统的PostgreSQL服务器相比,PGlite无需单独安装数据库服务,而是可以直接在应用程序内部运行,提供了一种更加灵活..

服务器安装数据库MySQL8.0版本,打包导入到MySQL5.6失败的结局方式

最近数据库升级为mysql8.0,在使用过程中发现一些问题,首先mysql8.0有很多新特性,对服务器配置要求较高,所有就考虑把数据库版本切换到MySQL5.6,经过多出测试处理发现在8.0数据库打包的数据导入到5.6总是报错,或..

在数据库中cms_content表content字段用SQL过滤替换掉包含photo.abc.tw所有图片img标签

SQL 语句:UPDATEcms_contentSETcontent=REGEXP_REPLACE(content,'<img[^>]*src="photo\\.abc\\.tw[^"]*"[^>]*>','')WHEREcontentREGEXP'<img[^>]*src="//photo\\.abc\\.tw';解释:REGEXP_R..

发表回复

返回顶部

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制
星辰影视-2025热门免费影视短剧平台熊猫影视-2025热门免费影视短剧平台番茄影视-2025热门免费影视短剧平台星光电影-2025热门免费影视短剧平台蜂鸟影院-2025热门免费影视短剧平台熊猫影视 - 全网高清免费影片聚合平台萝卜影院-2025热门电影电视剧免费在线播放-全站无广告高速播放下载樱花影院-2025热门免费影视短剧平台琪琪影视-2025热门免费影视短剧平台火影电影网-2025热门免费影视短剧平台悟空电影-2025热门免费影视短剧平台西瓜影院-2025热门免费影视短剧平台星空电影网-2025热门免费影视短剧平台好看电影网-2025热门免费影视短剧平台无忧影视网_高清影视在线观看分享平台_最新最全的免费影视短剧大全年钻网超清视界 - 全网高清免费短剧聚合平台极影公社-2025热门电影电视剧免费在线播放至尊影院-最新热门短剧免费电影网站_高清影视无弹窗极速播放星光电影-2025热门免费影视短剧平台河马影视-最新热门火爆的免费影视网站_高清影视夸克迅雷网盘下载叮当影视网-2025热门高清免费影视短剧分享平台70影视网 - 最新电影、电视剧、短剧、免费在线观看麻花影视网 - 高清免费聚合电影网西瓜影院-最新热门电影电视剧免费在线播放开心追剧网2048影视资源论坛-2048P.Com青青影视网-2025热门高清免费影视短剧分享平台八哥电影网_最新vip电影大全_热播电视剧_全网优质影视免费在线观看_老牌的免费在线影院_www.886958.com人人看电影-热播电视剧_2025年最新电影_人人影院高清在线免费观看天天影视网-高清免费电影、电视剧、短剧在线观看星辰影视-最新热门无广告的免费电影网站_高清影视无弹窗极速播放电影天堂爱看影院追剧达人U系列网盘资源橙子影视网天堂影视网天堂影视神马影院网大众影视网星辰影视网