/ / Distinto () in Mappa / Trasforma: indicizzazione, mapreduce, distinto, ravendb

Distinto () in Map / Transform - indexing, mapreduce, distinct, ravendb

Ho il seguente indice che sto creando per ottenere tutte le autorizzazioni per un utente specifico. Nella trasformazione, roles.SelectMany(x => x.Permissions) potrebbe contenere duplicati, quindi voglio metterlo .Distinct() su di essa. Tuttavia, quando lo faccio, sembra essere tradotto in Enumerable.Distinct(roles.SelectMany(x => x.Permissions) all'interno di Raven, che non restituisce risultati. Se cambio l'indice direttamente in Raven da usare .Distinct() invece di Enumerable.Distinct(...), funziona perfettamente.

Come può essere scritto in modo che venga tradotto correttamente in Raven?

public class PermissionsByUser : AbstractIndexCreationTask<User, UserWithPermissions>
{
public override string IndexName
{
get
{
return "Users/PermissionsByUser";
}
}
public PermissionsByUser()
{
Map = users => from user in users
from role in user.Roles
select new {role.Id};

TransformResults = (database, users) => from user in users
let roles = database.Load<Role>(user.Roles.Select(x => x.Id))
select new
{
Id = user.Id,
Username = user.Username,
Password = user.Password,
Roles = user.Roles,
Permissions = roles.SelectMany(x => x.Permissions)//.Distinct()
};
}
}

risposte:

0 per risposta № 1

Questo, a mio avviso, era in realtà solo un problema di risultati non aggiornati. Risposto a https://groups.google.com/forum/?fromgroups#!topic/ravendb/0hO8TOQicwc