sql >> Databasteknik >  >> NoSQL >> MongoDB

Använder C# MongoDB LINQ med diskriminator

När du arbetar med en polymorf typhierarki bör din samlingsvariabel och dina LINQ-frågor börja i termer av basklassen. Till exempel, för att läsa alla dokument av typ A tillbaka från databasen skulle du skriva:

var collection = database.GetCollection<D>("mycol");
var query = collection.AsQueryable<D>().OfType<A>();
foreach (var a in query)
{
    // process document of type A
}

För diagnostiska ändamål kan du se motsvarande inbyggda MongoDB-fråga med:

var json = ((MongoQueryable<A>)query).GetMongoQuery().ToJson();

Observera att du måste skicka en fråga till en MongoQueryable (inte MongoQueryable) eftersom OfType()-anropet ändrade typen av IQueryable.



  1. MongoDB:Effektiv schemadesign med inbäddade dokument

  2. uppdatering av id fungerar inte i mongoose

  3. Hur skapar man något som virtuellt fält &hårdkod ett värde i mongodb aggregation $project?

  4. När du använder rmongodb, kan inte se samlingar i mongoDB