我有2種形式的通話試驗,這一個如何構建一個適當的WHERE與RavenDb
products = DocumentSession.Query<Product>()
.Statistics(out stats)
.Where(p => p.INFO2.StartsWith(term1))
.Where(p => p.INFO2.StartsWith(term2))
.Where(p => p.INFO2.StartsWith(term3))
.OrderByField(columnToSortBy, columnToSortByAsc)
.Skip(pageIndex * pageSize)
.Take(pageSize)
.ToList()
;
和這樣
products = DocumentSession.Query<Product>()
.Statistics(out stats)
.Where(p => p.INFO2.StartsWith(term1) & p.INFO2.StartsWith(term2) & p.INFO2.StartsWith(term3))
.OrderByField(columnToSortBy, columnToSortByAsc)
.Skip(pageIndex * pageSize)
.Take(pageSize)
.ToList()
;
第一個返回的是更多的記錄符合我的期望,而秒鐘似乎返回所有類型爲Product的文檔。什麼是從一個LINQ表達式點2之間的差異,並有我忽略任何可能否定什麼,我試圖完成,這是一個3學期的查詢,每個術語被AND'd在一起。
編輯:修改代碼每Russ。
string t1 = terms[0];
string t2 = terms[1];
string t3 = terms[2];
products = DocumentSession.Query<Product>()
.Statistics(out stats)
.Where(p => p.INFO2.StartsWith(t1) && p.INFO2.StartsWith(t2) && p.INFO2.StartsWith(t3))
.OrderByField(columnToSortBy, columnToSortByAsc)
.Skip(pageIndex * pageSize)
.Take(pageSize)
.ToList()
;
編輯2:這是你砸你的臉下鍵盤,或與此有關的任何其他固體物體上......要回去這裏的基本標準的C#And和Or
謝謝你, 斯蒂芬
不用擔心;我不認爲有一個Stack overflow的C#開發人員至少沒有這樣做過!我知道我有:) – 2012-04-04 00:49:15