I have 2 suspicions about the problem: Your class definition has a problem, or somehow you are using a different namespace for one of your variables. Can you please check them first?
I have run a simple test right now and it just works (uses new C# top-level coding style):
Example Code
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;
var URI = $"mongodb+srv://YOUR_CONNECTION_URI/?retryWrites=true&w=majority";
// Create a document using BSON
{
MongoClient dbClient = new MongoClient(URI);
var database = dbClient.GetDatabase("testme");
var collection = database.GetCollection<BsonDocument>("class");
var document = new BsonDocument { { "id", 1 }, { "class", "1A" } };
await collection.InsertOneAsync(document);
}
// Find & Read documents with Filter and Model class
{
MongoClient dbClient = new MongoClient(URI);
var database = dbClient.GetDatabase("testme");
var collection = database.GetCollection<Model>("class");
var builder = Builders<Model>.Filter;
var filter = builder.Eq(model => model.Class, "1A");
var documents = collection.Find(filter);
foreach (var doc in documents.ToList())
{
Console.WriteLine($"id: {doc.SId} class: {doc.Class}");
}
}
class Model
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string? Id { get; set; }
[BsonElement("id")]
public int SId { get; set; }
[BsonElement("class")]
public string Class { get; set; } = null!;
}