C# 如何使用';Sql in';使用ASP.NET MVC存储库模式

C# 如何使用';Sql in';使用ASP.NET MVC存储库模式,c#,sql,repository-pattern,C#,Sql,Repository Pattern,我有一个SQL查询: select * from press where compId = 36 and categories in (1, 7, 21); 我尝试以ASP.NET MVC存储库模式的格式应用它: iPressRepository.GetAll().Where(x => (x.compId == 36)).ToList(); 但我的结果不正确,因为我在第二次查询中遗漏了“in”类别。是否有方法使用存储库模式在操作符中应用 提前谢谢我想应该是这样的 iPres

我有一个SQL查询:

select * 
from press 
where compId = 36 
  and categories in (1, 7, 21);
我尝试以ASP.NET MVC存储库模式的格式应用它:

 iPressRepository.GetAll().Where(x => (x.compId == 36)).ToList();
但我的结果不正确,因为我在第二次查询中遗漏了“in”类别。是否有方法使用存储库模式在操作符中应用


提前谢谢

我想应该是这样的

iPressRepository.GetAll().Where(x => (x.compId == 36)&&(x.categories==1||x.categories==7||x.categories==21)).ToList();

我想应该是这样的

iPressRepository.GetAll().Where(x => (x.compId == 36)&&(x.categories==1||x.categories==7||x.categories==21)).ToList();
如果您使用GetAll()您将从SQL获取所有数据,但您只需要一些数据,因此您应该使用AsQueryable()

存储库:

public IQueryable<T> AsQueryable()
{
    return _entities.AsQueryable();
}
如果您使用GetAll()您将从SQL获取所有数据,但您只需要一些数据,因此您应该使用AsQueryable()

存储库:

public IQueryable<T> AsQueryable()
{
    return _entities.AsQueryable();
}

可能重复的可能重复的感谢,但我的'CategoriesTookFor'是int字段,因此'int不包含..的定义。。像那个错误消息“我的
分类查找
”是什么意思?根据您的SQL查询,我认为数据库中有问题的列被命名为
categories
。您能否提供整个错误,并指定错误所在?它可以正常工作。谢谢。我的类别字段为int?(可为null的int)。然后我把它改成int,然后工作。非常感谢,但是我的'categoriestookfor'是int字段,所以'int不包含..的定义。。像那个错误消息“我的
分类查找
”是什么意思?根据您的SQL查询,我认为数据库中有问题的列被命名为
categories
。您能否提供整个错误,并指定错误所在?它可以正常工作。谢谢。我的类别字段为int?(可为null的int)。然后我把它改成int,然后工作。非常感谢他的作品,但我的分类是动态的。那么这个查询长度可能会随时间而变化。谢谢你的作品,但我的分类是动态的。那么这个查询长度可能会随时间而变化。非常感谢。