2016-07-28 45 views
0

Dies ist der Beispielcode zum Erstellen eines einfachen Index, um den Fanout-Index von Ayende's post zu vermeiden. Es kann jedoch nicht kompiliert werden. Der Fehler istRavenDB 3.0 Indexerstellung: Eine Ausdrucksbaumstruktur darf keine dynamische Operation enthalten?

"Ein Ausdrucksbaum darf keine dynamische Operation enthalten".

Wenn die Besetzung entfernen

IEnumerable<dynamic> 

aus dem Code kompiliert es aber nicht Index zu erzeugen. Es sollte eine allgemeine Frage für RavenDB 3.0 Benutzer sein. Irgendwelche Vorschläge?

from doc in docs.Users select new { 
CreditCards_Expired = (
    from docCreditCardsItem in ((IEnumerable<dynamic>)doc.CreditCards).DefaultIfEmpty() 
    select docCreditCardsItem.Expired).ToArray(), 
Roles_Name = (
    from docRolesItem in ((IEnumerable<dynamic>)doc.Roles).DefaultIfEmpty() 
    select docRolesItem.Name).ToArray() 

}

Antwort

2

Versuchen Sie es mit:

from doc in docs.Users 
select new { 
    CreditCards_Expired = doc.CreditCards.Select(c=>c.Expired), 
    Roles_Name = doc.Roles.Select(r=>r.Names) 
} 
+0

Es funktioniert. Danke – YuMei

+0

Und viel conciser. – YuMei