C#使用EntityFrameworkCore ORM方式操作MongoDB数据库
2024-06-14
102
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/
更新于:7个月前赞一波!1
相关文章
- 【说站】mysql有哪些备份数据库的方式
- .NET C# 使用Hook钩子实现全局监听键盘和鼠标
- .NET C#连接FTP实现文件上传下载
- C#使用 Attribute 实现 AOP 功能
- C#中的线程安全的集合ConcurrentQueue使用示例
- 【说站】mysql数据库有哪些调优方法
- .NET C#中的Func、Predicate和Expression用法详解
- C#13新特性 使用System.Threading.Lock简化线程同步
- .NET C# 读取编辑.AVIF图片文件
- .NET C# SkiaSharp读取.AVIF图片文件报错
- .NET开源ORM FreeSql常见问题和解决方法
- ASP.NET 使用Entity Framework (EF) 创建迁移修改SQLite数据库表结构
- 【说站】mysql教程 查看数据库创建信息
- .NET C# EntityFramework(EF)连接SQLite代码示例
- SQLite性能支持多少数据量?
- .NET 开源 ORM FreeSql 使用教程
- .NET9 C# 13 有哪些新特性?
- .Net ORM FreeSql
- C#中的String和StringBuilder的区别
- .NET C#中的IEnumerable和IEnumerator的区别
文章评论
评论问答