2016-05-04 5 views
0

Ich habe einige Objekte in einer LiteDB-Datenbank gespeichert. Ich versuche, ein Ergebnis aller CostBasisTradeSessionObjects zu erhalten, die markierte Objekte mit einem bestimmten Namen, MarkedNameString, enthalten. Ich finde das Markierte Objekt leicht genug, aber ich suche jetzt nicht nach Objekten im Objekt.Abfragen für Objekt basierend auf der Eigenschaft des Inside-Objekts

public string Marked 
{ 
public ObjectId MarkedId { get; set; } 
public String Name { get; set; } 
} 

public class CostBasisTradeSessionObject 
{ 
public ObjectId CostBasisTradeSessionId { get; set; } 
public bool IsActive { get; set; } 
public DateTime SessionStarted { get; set; } 
public DateTime SessionClosed { get; set; } 
public Marked Marked { get; set; } 
} 

using (var db = new LiteDatabase(@"CostBasesTradeSessionsDatabase.db")) 
{ 
var costBasisTradeSessionObjects = db.GetCollection("costBasisTradeSessionObjects"); 

     Marked marked = db.GetCollection<Marked>("markeds").Find(Query.EQ("Name", "<MarkedNameString>")).Single(); 
    } 

Also versuche ich, ein Ergebnis mit CostBasisTradeSessionObject Objekten zu erhalten, die das markierte Objekt zurück in var enthält markiert.

Also habe ich versucht, ein paar Dinge

var cb = costBasisTradeSessionObjects.Include(x => x.Marked).Equals(marked); 

und Justing jusing das MarkedNameString Verzeichnis

var results = costBasisTradeSessionObjects.(Query.("Marked.name", "MarkedNameString")); 

oder

var results = costBasisTradeSessionObjects.Find(x => x.Marked.Name.Equals("MarkedNameString")); 

aber alle Dinge, die ich versucht, ein leeres Ergebnis zurück oder nicht arbeiten.

Grüße

+0

Sie sollten diese versuchen, var cb = costBasisTradeSessionObjects.Where (x => x.Marked == "MarkedNameString"); –

+0

Versuchen Sie dies - var cb = costBasisTradeSessionObjects.Where (x => x.Marked.Equals (markiert)); –

Antwort

0

Ich glaube, du bist für die Where() Methode suchen. Sie können Ihre Suche nach Ihrer Name-Eigenschaft filtern und einen IEnumerable-Wert von CostBasisTradeSessionObject zurückgeben.

var results = costBasisTradeSessionObjects 
    .Where(x => x.Marked.Name == "MarkedNameString"); 
Verwandte Themen