文档菜单
文档首页
/ / /
EF Core 提供程序

快速参考

此页面展示了多个命令的提供者语法以及它们相关联的 API 文档链接。

命令
语法
配置 DBContext

API 文档
基础知识
public class PlanetDbContext : DbContext
{
public DbSet<Planet> Planets { get; init; }
public static PlanetDbContext Create(IMongoDatabase database) =>
new(new DbContextOptionsBuilder<PlanetDbContext>()
.UseMongoDB(database.Client, database.DatabaseNamespace.DatabaseName)
.Options);
public PlanetDbContext(DbContextOptions options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Planet>().ToCollection("planets");
}
}
创建 DBContext 实例

// Replace the placeholder with your connection URI
var client = new MongoClient("<Your connection URI>");
var db = PlanetDbContext.Create(client.GetDatabase("sample_planets"));
var planet = db.Planets.FirstOrDefault(p => p.name == "Mercury");
Console.WriteLine(planet.name);
Mercury
查找多个实体

var planets = db.Planets.Where(p => p.hasRings == true);
foreach (var p in planets)
{
Console.WriteLine(p.name);
}
Neptune
Uranus
Saturn
Jupiter
db.Planets.Add(new Planet()
{
name = "Pluto",
hasRings = false,
orderFromSun = 9
});
db.SaveChanges();
插入多个实体

var planets = new[]
{
new Planet()
{
_id = ObjectId.GenerateNewId(),
name = "Pluto",
hasRings = false,
orderFromSun = 9
},
new Planet()
{
_id = ObjectId.GenerateNewId(),
name = "Scadrial",
hasRings = false,
orderFromSun = 10
}
};
db.Planets.AddRange(planets);
db.SaveChanges();
var planet = db.Planets.FirstOrDefault(p => p.name == "Mercury");
planet.name = "Mercury the first planet";
db.SaveChanges();
更新多个实体

var planets = db.Planets.Where(p => p.orderFromSun > 0);
foreach (var p in planets)
{
p.orderFromSun++;
}
db.SaveChanges();
var planet = db.Planets.FirstOrDefault(p => p.name == "Pluto");
db.Planets.Remove(planet);
db.SaveChanges();
删除多个实体

var pluto = db.Planets.FirstOrDefault(p => p.name == "Pluto");
var scadrial = db.Planets.FirstOrDefault(p => p.name == "Scadrial");
var planets = new[] { pluto, scadrial };
db.Planets.RemoveRange(planets);
db.SaveChanges();
指定获取实体的顺序

var planetList = db.Planets.OrderBy(p => p.orderFromSun);
foreach (var p in planetList)
{
Console.WriteLine(p.name);
}
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
指定获取实体的多个排序顺序

var planetList = db.Planets.OrderBy(o => o.hasRings).ThenBy(o => o.name);
foreach (var p in planetList)
{
Console.WriteLine("Has rings: " + p.hasRings + ", Name: " + p.name);
}
Has rings: False, Name: Earth
Has rings: False, Name: Mars
Has rings: False, Name: Mercury
Has rings: False, Name: Venus
Has rings: True, Name: Jupiter
Has rings: True, Name: Neptune
Has rings: True, Name: Saturn
Has rings: True, Name: Uranus
指定要获取的实体数量

var planetList = db.Planets.Take(3);
foreach (var p in planetList)
{
Console.WriteLine(p.name);
}
Neptune
Mercury
Mars
指定获取时跳过的实体数量

var planetList = db.Planets.OrderBy(p => p.orderFromSun).Skip(5);
foreach (var p in planetList)
{
Console.WriteLine(p.name);
}
Saturn
Uranus
Neptune

上一页

快速入门