基于内部对象的属性查询对象

时间:2016-05-04 11:19:40

标签: c# linq

我有一些存储在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"));

但我尝试的所有内容都返回空结果或不起作用。

此致

1 个答案:

答案 0 :(得分:0)

我相信你正在寻找Where()方法。您可以按Name属性过滤搜索,并返回IEnumerable CostBasisTradeSessionObject

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