sql >> Databáze >  >> NoSQL >> MongoDB

Použití C# MongoDB LINQ s diskriminátorem

Při práci s hierarchií polymorfních typů by vaše proměnná kolekce a vaše dotazy LINQ měly začínat z hlediska základní třídy. Chcete-li například přečíst všechny dokumenty typu A zpět z databáze, napište:

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

Pro diagnostické účely můžete zobrazit odpovídající nativní dotaz MongoDB pomocí:

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

Všimněte si, že musíte odeslat dotaz na MongoQueryable (nikoli MongoQueryable), protože volání OfType() změnilo typ IQueryable.



  1. Nelze vytvořit instanci proxy...Nelze najít konstruktor bez parametrů

  2. Přidejte nové pole do každého dokumentu v kolekci MongoDB

  3. Silný pokles výkonu s MongoDB Change Streams

  4. Jak aktualizovat objekt v mongodb přes mongoose?