---
title: "NHibernate.Linq med en array som in-parameter"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/185168-nhibernate-linq-med-en-array-som-in-parameter"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "doggelito"
published: "2010-11-08T08:52:41.000Z"
updated: "2010-11-16T20:19:10.000Z"
replies: 4
views: 801
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/185168-nhibernate-linq-med-en-array-som-in-parameter"
---

# NHibernate.Linq med en array som in-parameter

## #1 — doggelito, 2010-11-08T08:52Z

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;
}
```

Permalänk: https://www.webforum.nu/p/185168

## #2 — SPiN, 2010-11-08T09:41Z

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 ;)

Permalänk: https://www.webforum.nu/p/2258914

## #3 — doggelito, 2010-11-08T09:58Z

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?

Permalänk: https://www.webforum.nu/p/2258920

## #4 — SPiN, 2010-11-08T10:29Z

Det låter som en riktig iaktagelse, ja :)

Nu kan jag vara ute på djupt vatten...

```
...
     .Fetch(x => x.Roles.Intersect(roles).Count > 0)
...
```

Permalänk: https://www.webforum.nu/p/2258926

## #5 — Nickemannen, 2010-11-16T20:19Z

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()
```

Permalänk: https://www.webforum.nu/p/2259734

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/185168-nhibernate-linq-med-en-array-som-in-parameter
