Code
·
87 lines
·
2009 bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87using Microsoft.EntityFrameworkCore;
using System.Diagnostics;
namespace JsonContextDb.TestApp;
public class EFTester
{
public static async Task Main()
{
await using var context = new EFUsersContext(
new DbContextOptionsBuilder<EFUsersContext>()
.UseInMemoryDatabase(databaseName: "UsersDb")
.Options);
context.Users.AddRange(
new User { Name = "Alphons" },
new User { Name = "Annet" }
);
Debug.Assert(context.Users.Count() == 0);
var cnt = await context.SaveChangesAsync();
var tttt = context.Users;
Debug.Assert(cnt == 2);
Debug.Assert(context.Users.Count() == 2);
var users = await context.Users
.Where(p => p.Name.Contains('A'))
.OrderBy(p => p.Name)
.ToListAsync();
foreach (var user in users)
{
Console.WriteLine($"Id:{user.Id} User: {user.Name}");
}
var alphons = await context.Users.FirstOrDefaultAsync(p => p.Name == "Alphons");
if (alphons != null)
{
alphons.Name = "Alphonsje";
var name = context.Users.ToList()[0].Name;
Debug.Assert(name == "Alphonsje");
var cnt2 = await context.SaveChangesAsync();
Debug.Assert(cnt2 == 1);
Debug.Assert(context.Users.Where(x => x.Id == 1).FirstOrDefault()?.Name == "Alphonsje");
Console.WriteLine($"\nBijgewerkte Name voor {alphons.Name}");
}
var alphonsDelete = await context.Users
.FirstOrDefaultAsync(p => p.Name == "Alphonsje");
if (alphonsDelete != null)
{
context.Users.Remove(alphonsDelete);
Debug.Assert(context.Users.Where(x => x.Id == 1).FirstOrDefault()?.Name == "Alphonsje");
var cnt3 = await context.SaveChangesAsync();
Debug.Assert(cnt3 == 1);
Console.WriteLine($"Alphonsje verwijderd {cnt3}");
}
Console.WriteLine("\nResterende users:");
await foreach (var user in context.Users.AsAsyncEnumerable())
{
Console.WriteLine($"Id:{user.Id} User: {user.Name}");
}
}
}
public class EFUsersContext(DbContextOptions<EFUsersContext> options) : DbContext(options)
{
public DbSet<User> Users { get; set; }
}