ok
c31023bacf4405eba39382127d156b517af93403
2 files changed
src/MongoExample/MongoExtensions.cssrc/MongoExample/Program.cs
diff --git a/src/MongoExample/MongoExtensions.cs b/src/MongoExample/MongoExtensions.cs
index 311d09d..e0282d6 100644
--- a/src/MongoExample/MongoExtensions.cs
+++ b/src/MongoExample/MongoExtensions.cs
@@ -1,6 +1,7 @@
using MongoDB.Driver;
using System.Configuration;
using System.Linq.Expressions;
+using System.Xml.Linq;
namespace MongoDb.Extensions;
@@ -28,11 +29,31 @@ public static class LinqExtensions
else
return await results.FirstOrDefaultAsync();
}
+
+ public async static Task<List<T>> ToListAsync<T>(this IMongoCollection<T> collection, Expression<Func<T, bool>> filter)
+ {
+ var results = await collection.FindAsync(filter);
+
+ if (results == null)
+ return [];
+ else
+ return await results.ToListAsync();
+ }
}
-public class MongoDbContext(string name)
+public class MongoDbContext
{
- private readonly IMongoDatabase db = new MongoClient(ConfigurationManager.ConnectionStrings["mongo"].ConnectionString)
- .GetDatabase(name);
+ public readonly MongoClient Client;
+
+ private readonly IMongoDatabase db;
+
+ public MongoDbContext(string name)
+ {
+ Client = new(ConfigurationManager.ConnectionStrings["mongo"].ConnectionString);
+
+ db = Client.GetDatabase(name);
+ }
+
public IMongoCollection<T> Table<T>() => db.GetCollection<T>($"{typeof(T).Name}Table");
}
+
diff --git a/src/MongoExample/Program.cs b/src/MongoExample/Program.cs
index dbd000c..b3d0585 100644
--- a/src/MongoExample/Program.cs
+++ b/src/MongoExample/Program.cs
@@ -23,7 +23,9 @@ if(klant == null)
Age = 35
};
+ var isession = await db.Client.StartSessionAsync();
await db.KlantTable.InsertOneAsync(klant);
+ isession.Dispose();
}
Console.WriteLine($"Het {klant.Address}");