返回
C#使用EntityFrameworkCore ORM方式操作MongoDB数据库
2024-05-04
1239 0Entity 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/
您可能感兴趣:
网友点评
提交
相关阅读
C#快速实现PDF转PPT
DBSync 简单易用的免费数据库同步工具使用图文教程
轻量级ORM框架Dapper用法
.NET C# System.Text.Json进阶使用技巧
c#微信SDK开发工具包DotNetCore.SKIT.FlurlHttpClient.Wechat
C# Winform实现多个窗体之间切换
MySQL 5.x和MySQL 8.x数据库的区别
向量数据库Milvus安装和使用
相关帖子
c#和java哪个难学?他们的就业前景如何?
CentOS Linux报错[10498]: Failed at step EXEC spawning /root/xxx: Exec format error
PMC报错Scaffold-DbContext : 无法将“Scaffold-DbContext”项识别为 cmdlet、函数、脚本
github打不开怎么办?
程序员收入高但是为什么幸福感很低
魔兽世界11.0地心之战 狂怒专精狂暴战士天赋加点
EFcloud机场不能用了?EFcloud机场跑路了?推荐完美替代 – DOVE加速器 评测
四款适合PC电脑/手机使用的外网梯子机场加速器推荐 - 高速稳定好用的加速器官网下载