Asp.net mvc 使用Linqtosql,如何基于UserID';s

Asp.net mvc 使用Linqtosql,如何基于UserID';s,asp.net-mvc,linq-to-sql,Asp.net Mvc,Linq To Sql,使用linqtosql,如果我有一个要获取的用户ID数组,如何获取用户对象的集合?您可以使用Contains检查每个用户ID是否在您拥有的数组中 int[] userIDs = ... var users = db.Users.Where( u => userIDs.Contains( u.UserID ) ); 您可以使用Contains检查每个UserID是否都在您拥有的数组中 int[] userIDs = ... var users = db.Users.Where( u =&g

使用linqtosql,如果我有一个要获取的用户ID数组,如何获取用户对象的集合?

您可以使用Contains检查每个用户ID是否在您拥有的数组中

int[] userIDs = ...
var users = db.Users.Where( u => userIDs.Contains( u.UserID ) );

您可以使用Contains检查每个UserID是否都在您拥有的数组中

int[] userIDs = ...
var users = db.Users.Where( u => userIDs.Contains( u.UserID ) );
试试这个:

using(var db=new MyDataContext())
{
    var users=db.Users.Where(u=>userIds.Contains(u.Id));
}
试试这个:

using(var db=new MyDataContext())
{
    var users=db.Users.Where(u=>userIds.Contains(u.Id));
}

如果希望避免使用集合操作和用户链接的ORs,则可以使用来帮助您

事情是这样的:

var userIDs = new[] { 1, 2, 3, 4, 5 };

// build multiple OR expressions
var filter = PredicateBuilder.False<User>();

foreach (var id in userIDs) {
    filter = filter.Or(x => x.UserID == id);
}

// fetch data
using (var db = new TheDataContext()) {

    var users = db.Users.Where(filter);

    // wham! - we have users now.

}
var userIDs=new[]{1,2,3,4,5};
//生成多个或多个表达式
var filter=PredicateBuilder.False();
foreach(userid中的变量id){
filter=filter.Or(x=>x.UserID==id);
}
//获取数据
使用(var db=new TheDataContext()){
var users=db.users.Where(过滤器);
//哇!-我们现在有用户了。
}

看看这篇博文,了解它是如何工作的。这基本上是为列表中的每个用户id创建一个长链ORs,然后将其传递给WHERE子句。

如果您想避免设置操作和用户链ORs,可以使用来帮助您

事情是这样的:

var userIDs = new[] { 1, 2, 3, 4, 5 };

// build multiple OR expressions
var filter = PredicateBuilder.False<User>();

foreach (var id in userIDs) {
    filter = filter.Or(x => x.UserID == id);
}

// fetch data
using (var db = new TheDataContext()) {

    var users = db.Users.Where(filter);

    // wham! - we have users now.

}
var userIDs=new[]{1,2,3,4,5};
//生成多个或多个表达式
var filter=PredicateBuilder.False();
foreach(userid中的变量id){
filter=filter.Or(x=>x.UserID==id);
}
//获取数据
使用(var db=new TheDataContext()){
var users=db.users.Where(过滤器);
//哇!-我们现在有用户了。
}

看看这篇博文,了解它是如何工作的。这基本上是为列表中的每个用户id创建一个长链ORs,然后将其传递给WHERE子句。

我只想注意,这会生成一个使用集合比较(in)的非常难看的查询,而不仅仅是生成一个长WHERE子句。我只想注意,这会生成一个使用集合比较(in)的非常难看的查询而不仅仅是生成一个长WHERE子句。这就是答案。LINQtoSQL表达式中使用的IENumerable.Contains()方法将生成SQL in()函数。这就是答案。LINQtoSQL表达式中使用的IENumerable.Contains()方法将生成SQL in()函数。这只是猜测,但这是针对asp.net MVC的吗?是的,这是针对asp.net MVC的为什么?这只是猜测,但这是针对asp.net MVC的吗?是的,这是针对asp.net MVC的为什么?