C#使用EntityFrameworkCore ORM方式操作MongoDB数据库
2024-06-14
61
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/
更新于:4个月前赞一波!
相关文章
- C# Word转换成Pdf的方法
- c#使用MongoDB开发LBS应用
- hprose for C#使用教程
- MySQL如何建数据库
- c#实现与Java无差异的GZip压缩和GZip解压缩
- 国产轻量级ORMSqlSugar实践
- .NET Core c#使用SkiaSharp压缩裁切图片去除水印
- c# decimal保留2位小数 并向下舍入
- .NET Core c#使用SkiaSharp压缩图片
- C#复制文件到指定文件夹
- c#获取枚举的Description
- c#读取pdf里的表格
- c# HttpClient下载图片
- c#使用HtmlAgilityPack编辑html并保存
- c#获取文件夹所有文件列表
- c# int数值转enum枚举
- c#获取枚举的描述Description和摘要Summary
- .NET C#获取客户端真实IP
- c# 常用语法糖
- c# 爬虫组件有哪些?
文章评论
评论问答