我有一些存储在LiteDB数据库中的对象。我试图得到所有CostBasisTradeSessionObjects的结果,其中包括具有特定名称MarkedNameString的标记对象。我很容易找到标记对象,但我现在不知道如何查询对象中的对象。
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();
}
因此,我尝试使用CostBasisTradeSessionObject对象获取结果,该对象包含在var标记中返回的标记对象。
所以我尝试了几件事
var cb = costBasisTradeSessionObjects.Include(x => x.Marked).Equals(marked);
和justing jusing MarkedNameString目录
var results = costBasisTradeSessionObjects.(Query.("Marked.name", "MarkedNameString"));
或
var results = costBasisTradeSessionObjects.Find(x => x.Marked.Name.Equals("MarkedNameString"));
但我尝试的所有内容都返回空结果或不起作用。
此致
答案 0 :(得分:0)
我相信你正在寻找Where()
方法。您可以按Name
属性过滤搜索,并返回IEnumerable CostBasisTradeSessionObject
。
var results = costBasisTradeSessionObjects
.Where(x => x.Marked.Name == "MarkedNameString");