我剛剛開始使用RavenDB並遇到了一個奇怪的場景。具有不同LINQ語法的Raven Db似乎無法正常工作
當我運行下面的查詢時,模型被填充得很好。一切都很好。
var contacts = Session.Query<Contact>()
.Where(c => c.UserId == this.userId)
.ToList();
var model = contacts.Select(c => new SelectListItem() {
Text = c.FullName,
Value = c.Id }).ToList();
但是,這不是我開始的代碼。我從下面的代碼開始,填充聯繫人FullName的Text屬性。由於某些隨機原因,它不會從聯繫人ID填充Value屬性。
var model = (from c in Session.Query<Contact>()
where c.UserId == this.userId
select new SelectListItem() {
Text = c.FullName,
Value = c.Id }).ToList();
我不知道這是否是一個錯誤,或者如果我只是簡單的東西。想法?
**更新**
它也不喜歡這種語法。我必須在這裏錯過一些非常基本的東西。
var model = Session.Query<Contact>()
.Where(c => c.UserId == this.userId)
.Select(c => new SelectListItem() { Text = c.FullName, Value = c.Id })
.ToList();
感謝您的答案。我不喜歡我們從文檔中提取所有數據,但我想它必須能夠工作。假設聯繫人文檔中包含大量數據,您是不是希望Linq提供程序處理選擇而不是獲取所有數據? –
@BrettAllred:是的,絕對 - 我建議你在場景中針對Raven提出一個錯誤。 –
我能夠重現在RavenDB 1.0.960中爲空的.Id屬性,但不是在當前的1.2不穩定版本中。因此,我會說這是一個已經被修復的錯誤。 1.2與RTM非常接近(根據Ayende),所以如果可以的話,我現在可以切換。 –