further experiment
10c1e768d0334cbe7fb11c965b5646143c52696a
5 files changed
src/MongoEfCore/App.configsrc/MongoEfCore/DbContext.cssrc/MongoEfCore/MongoDbContext.cssrc/MongoEfCore/MongoEfCore.csprojsrc/MongoEfCore/Program.cs
diff --git a/src/MongoEfCore/App.config b/src/MongoEfCore/App.config
new file mode 100644
index 0000000..f50aedd
--- /dev/null
+++ b/src/MongoEfCore/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <connectionStrings>
+ <add connectionString="mongodb://127.0.0.1" name="mongo" />
+ </connectionStrings>
+</configuration>
\ No newline at end of file
diff --git a/src/MongoEfCore/DbContext.cs b/src/MongoEfCore/DbContext.cs
new file mode 100644
index 0000000..6715edb
--- /dev/null
+++ b/src/MongoEfCore/DbContext.cs
@@ -0,0 +1,27 @@
+using MongoDB.Bson;
+using MongoDB.Driver;
+
+
+namespace MongoEfCore;
+
+public class DbContext(string name) : MongoDbContext(name)
+{
+ public IMongoCollection<Klant> KlantTable => Table<Klant>();
+ public IMongoCollection<Hypotheek> HypotheekTable => Table<Hypotheek>();
+}
+
+public class Hypotheek
+{
+ public ObjectId Id { get; set; }
+ public string? Name { get; set; }
+ public string? Rente { get; set; }
+}
+
+public class Klant
+{
+ public ObjectId Id { get; set; }
+ public string? Name { get; set; }
+ public string? Address { get; set; }
+ public int Age { get; set; }
+}
+
diff --git a/src/MongoEfCore/MongoDbContext.cs b/src/MongoEfCore/MongoDbContext.cs
new file mode 100644
index 0000000..cfc06d2
--- /dev/null
+++ b/src/MongoEfCore/MongoDbContext.cs
@@ -0,0 +1,14 @@
+using MongoDB.Driver;
+
+using System.Configuration;
+
+
+namespace MongoEfCore
+{
+ public class MongoDbContext(string name)
+ {
+ private readonly IMongoDatabase db = new MongoClient(ConfigurationManager.ConnectionStrings["mongo"].ConnectionString)
+ .GetDatabase(name);
+ public IMongoCollection<T> Table<T>() => db.GetCollection<T>($"{typeof(T).Name}Table");
+ }
+}
diff --git a/src/MongoEfCore/MongoEfCore.csproj b/src/MongoEfCore/MongoEfCore.csproj
index a604dff..ae23665 100644
--- a/src/MongoEfCore/MongoEfCore.csproj
+++ b/src/MongoEfCore/MongoEfCore.csproj
@@ -9,6 +9,7 @@
<ItemGroup>
<PackageReference Include="MongoDB.Driver" Version="2.28.0" />
+ <PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
</ItemGroup>
</Project>
diff --git a/src/MongoEfCore/Program.cs b/src/MongoEfCore/Program.cs
index 04fe417..c45da73 100644
--- a/src/MongoEfCore/Program.cs
+++ b/src/MongoEfCore/Program.cs
@@ -1,21 +1,18 @@
-using MongoDB.Driver;
-using MongoDB.Bson;
-using MyExtensions;
+
+using MongoDB.Driver;
-//var client = new MongoClient("mongodb://192.168.28.123");
-var client = new MongoClient("mongodb://127.0.0.1");
+using MyExtensions;
+using MongoEfCore;
-if (client == null) return;
-var klanten = client.GetDatabase("dbCrm").GetCollection<Klant>("KlantenTable");
+var db = new DbContext("Crm");
-if (klanten == null) return;
-var indexKeysDefinition = Builders<Klant>.IndexKeys.Ascending(x => x.Name);
+//var indexKeysDefinition = Builders<Klant>.IndexKeys.Ascending(x => x.Name);
-var indexName = await klanten.Indexes.CreateOneAsync(new CreateIndexModel<Klant>(indexKeysDefinition));
+//var indexName = await db.KlantTable.Indexes.CreateOneAsync(new CreateIndexModel<Klant>(indexKeysDefinition));
-var klant = klanten.FirstOrDefault(x => x.Name == "Jochem");
+var klant = db.KlantTable.FirstOrDefault(x => x.Name == "Jochem");
if(klant == null)
{
@@ -26,18 +23,9 @@ if(klant == null)
Age = 35
};
- await klanten.InsertOneAsync(klant);
+ await db.KlantTable.InsertOneAsync(klant);
}
Console.WriteLine($"Het {klant.Address}");
-
-class Klant
-{
- public ObjectId Id { get; set; }
- public string? Name { get; set; }
- public string? Address { get; set; }
- public int Age { get; set; }
-}
-