Skip to content

Commit 4532db2

Browse files
Merge pull request #2 from jordan-smith721/DOCSP-32563-quick-reference
Docsp 32563 quick reference
2 parents 757d33f + 2163ea5 commit 4532db2

File tree

3 files changed

+432
-1
lines changed

3 files changed

+432
-1
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.env
2+
3+
# Editor
4+
.vscode
5+
.idea
6+
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
using Microsoft.EntityFrameworkCore;
2+
using MongoDB.Bson;
3+
using MongoDB.Driver;
4+
using MongoDB.EntityFrameworkCore.Extensions;
5+
6+
// start-create-instance
7+
// Replace the placeholder with your connection URI
8+
var client = new MongoClient("<Your connection URI>");
9+
var db = PlanetDbContext.Create(client.GetDatabase("sample_planets"));
10+
// end-create-instance
11+
12+
void FindOne()
13+
{
14+
// start-find-one
15+
var planet = db.Planets.FirstOrDefault(p => p.name == "Mercury");
16+
Console.WriteLine(planet.name);
17+
// end-find-one
18+
}
19+
20+
void FindMultiple()
21+
{
22+
// start-find-many
23+
var planets = db.Planets.Where(p => p.hasRings).ToList();
24+
25+
foreach (var p in planets)
26+
{
27+
Console.WriteLine(p.name);
28+
}
29+
// end-find-many
30+
}
31+
32+
void InsertOne()
33+
{
34+
// start-insert-one
35+
db.Planets.Add(new Planet() { name = "Pluto", hasRings = false, orderFromSun = 9 });
36+
db.SaveChanges();
37+
// end-insert-one
38+
}
39+
40+
void InsertMany()
41+
{
42+
// start-insert-many
43+
var planets = new[]
44+
{
45+
new Planet() { _id = ObjectId.GenerateNewId(), name = "Pluto", hasRings = false, orderFromSun = 9 },
46+
new Planet() { _id = ObjectId.GenerateNewId(), name = "Scadrial", hasRings = false, orderFromSun = 10 }
47+
};
48+
49+
db.Planets.AddRange(planets);
50+
db.SaveChanges();
51+
// end-insert-many
52+
}
53+
54+
void UpdateOne()
55+
{
56+
// start-update-one
57+
var planet = db.Planets.FirstOrDefault(p => p.name == "Mercury");
58+
planet.name = "Mercury the first planet";
59+
60+
db.SaveChanges();
61+
// end-update-one
62+
}
63+
64+
void UpdateMany()
65+
{
66+
// start-update-many
67+
var planets = db.Planets.Where(p => p.orderFromSun > 0);
68+
foreach (var p in planets)
69+
{
70+
p.orderFromSun++;
71+
}
72+
73+
db.SaveChanges();
74+
// end-update-many
75+
}
76+
77+
void DeleteOne()
78+
{
79+
// start-delete-one
80+
var planet = db.Planets.FirstOrDefault(p => p.name == "Pluto");
81+
db.Planets.Remove(planet);
82+
83+
db.SaveChanges();
84+
// end-delete-one
85+
}
86+
87+
void DeleteMany()
88+
{
89+
// start-delete-many
90+
var pluto = db.Planets.FirstOrDefault(p => p.name == "Pluto");
91+
var scadrial = db.Planets.FirstOrDefault(p => p.name == "Scadrial");
92+
var planets = new[] { pluto, scadrial };
93+
db.Planets.RemoveRange(planets);
94+
95+
db.SaveChanges();
96+
// end-delete-many
97+
}
98+
99+
void OrderByExample()
100+
{
101+
// start-order-by
102+
var planetList = db.Planets.OrderBy(p => p.orderFromSun).ToList();
103+
104+
foreach (var p in planetList)
105+
{
106+
Console.WriteLine(p.name);
107+
}
108+
// end-order-by
109+
}
110+
111+
void DoubleOrderBy()
112+
{
113+
// start-order-by-then-by
114+
var planetList = db.Planets.OrderBy(o => o.hasRings).ThenBy(o => o.name).ToList();
115+
116+
foreach (var p in planetList)
117+
{
118+
Console.WriteLine("Has rings: " + p.hasRings + ", Name: " + p.name);
119+
}
120+
// end-order-by-then-by
121+
}
122+
123+
void TakeExample()
124+
{
125+
// start-take
126+
var planetList = db.Planets.Take(3).ToList();
127+
128+
foreach (var p in planetList)
129+
{
130+
Console.WriteLine(p.name);
131+
}
132+
// end-take
133+
}
134+
135+
void SkipExample()
136+
{
137+
// start-skip
138+
var planetList = db.Planets.OrderBy(p => p.orderFromSun).Skip(5).ToList();
139+
140+
foreach (var p in planetList)
141+
{
142+
Console.WriteLine(p.name);
143+
}
144+
// end-skip
145+
}
146+
147+
// start-db-context
148+
internal class PlanetDbContext : DbContext
149+
{
150+
public DbSet<Planet> Planets { get; init; }
151+
152+
public static PlanetDbContext Create(IMongoDatabase database) =>
153+
new(new DbContextOptionsBuilder<PlanetDbContext>()
154+
.UseMongoDB(database.Client, database.DatabaseNamespace.DatabaseName)
155+
.Options);
156+
157+
public PlanetDbContext(DbContextOptions options)
158+
: base(options)
159+
{
160+
}
161+
162+
protected override void OnModelCreating(ModelBuilder modelBuilder)
163+
{
164+
base.OnModelCreating(modelBuilder);
165+
modelBuilder.Entity<Planet>().ToCollection("planets");
166+
}
167+
}
168+
// end-db-context
169+
internal class Planet
170+
{
171+
public ObjectId _id { get; set; }
172+
public string name { get; set; }
173+
public int orderFromSun { get; set; }
174+
public bool hasRings { get; set; }
175+
}

0 commit comments

Comments
 (0)