0
對於db4o的,我試圖找到產生以下SODA的LINQ代碼:db4o:SODA查詢的LINQ等價物?
var query = db4o.db.Query();
query.Descend("Symbol");
query.Descend("_symbolGlobal").Constrain("APPLE");
query.Descend("_date"); // Add a date constraint here.
IObjectSet result = query.Execute();
所有SODA確實是下拉樹的末端節點。例如,如果您想爲日期「2010-10-18」選擇「APPLE」,則會返回「週四的蘋果」。
數據結構:
Root ----Symbol (APPLE)
| |------Day 1: Date: 2010-10-18, string "Apples on Thursday"
| |------Day 2: Date: 2010-10-19, string "Apples on Friday"
|
|
|-----Symbol (PEAR)
|------Day 1: Date: 2010-10-18, string "Pears on Thursday"
|------Day 2: Date: 2010-10-19, string "Pears on Friday"
這是我第一次嘗試,不作爲其獲得跨產品工作(即它的尋找每一個可能的組合)。我無法使用連接,因爲db4o是對象數據庫,並且您無權訪問每個對象的ID,例如在RDBMS中。
var stringForDayAndSymbol = from s in db4o.db.Query<Symbol>(a => a.SymbolGlobal == "APPLE")
from t in db4o.db.Query<Date>(b => b.Date == new DateTime(2010, 10, 20))
select new
{
s.SymbolGlobal,
t.Date,
t.Meta
};
我已經打上這個答案是正確的,但是,如果你試圖降落成爲一個對象的集合,比如任何用IList實例化的對象,那麼它將不起作用(集合對於SODA來說似乎是不可見的)。 – Contango
嗯,我認爲集合上的'contains'操作也應該與LINQ一起工作。像s.SymbolGlobal.Contains(「Apple」)。 – Gamlor