Hej,
Jag vill hämta användare som tillhör vissa roller. Hur får jag in arrayen i selecten?
Typ så här vill jag ha:
public IEnumerable<User> GetUsers(string[] roles)
{
var result = _session.Query<User>()
.Fetch(x => x.Roles.[b]Where(y => y.Name in (roles))[/b]);
return result;
}
SPiNMedlem sedan mars 20007 896 inlägg Möjligtvis:
public IEnumerable<User> GetUsers(string[] roles)
{
var result = _session.Query<User>()
.Fetch(x => x.Roles.Where([b]y => roles.Contains(y.Name)[/b]));
return result;
}
Du får jämföra mot rätt property hos rollen dock, här gissade jag på Name ;)
Ett steg närmare! :)
Men nu blev det:
A fetch request must be a simple member access expression; 'x.Roles.Where(y => value(System.String[]).Contains(y.Name))' is a MethodCallExpressionN instead.
Får man inte sätta where-satsen inuti fetchen tro?
SPiNMedlem sedan mars 20007 896 inlägg Det låter som en riktig iaktagelse, ja :)
Nu kan jag vara ute på djupt vatten...
...
.Fetch(x => x.Roles.Intersect(roles).Count > 0)
...
Strunta i Fetch, den är ju till för hur du skall ladda listorna på objektet
var users = (from user in Session.Query<User> where roles.Intersect(user.Roles)).ToList()