LINQ to SQL中,可以直接用Contains或Any来实现IN的查询,但是到了LINQ to Entity,用这种方式会直接提示系统不支持的错误,所以需要通过以下方式解决:
1、首先需要增加一个构建Lambda表达式的方法:
/// <summary>
/// 通过变通方法实现IN查询。
/// </summary>
/// <typeparam name="T">数据集合中的对象。</typeparam>
/// <typeparam name="V">值类型。</typeparam>
/// <param name="propertySelector">表达式。</param>
/// <param name="values">值范围数组。</param>
/// <returns>IN筛选表达式。</returns>
private static Expression<Func<T, bool>> BuildWhereInExpression<T, V>(Expression<Func<T, V>> propertySelector, IEnumerable<V> values)
{
ParameterExpression p = propertySelector.Parameters.Single();
if (!values.Any())
{
return e => false;
}
var equals = values.Select(value => (Expression)Expression.Equal(propertySelector.Body, Expression.Constant(value, typeof(V))));
var body = equals.Aggregate<Expression>((accumulate, equal) => Expression.Or(accumulate, equal));
return Expression.Lambda<Func<T, bool>>(body, p);
}
2、然后在代码中,通过如下方式进行过滤:
string[] ids = new string[] {"10101", "10005", "10007"};
var recordList = db.Profile.Where(BuildWhereInExpression<Profile, string>(l=>l.Id, ids);
分享到:
相关推荐
实现linq多个查询条件连接功能(支持linq to sql 和linq to entity)。 按多个指定属性排序功能。 不同参数的lamdba表达式条件间的转换功能。
数据库连接 Linq to Entity
对于linq to entity的语法的介绍以北风网为例子
MVC+Linq to Entity音乐商店源码 功能介绍: 简单实现了音乐商品的管理和分类查看功能
LINQ to SQL和Entity Framework对比与关联LINQ to SQL和Entity Framework对比与关联
vs2010 linq to entity sql 2008 ajax
Entity Framework技术系列之7:LINQ to Entities.pdf
里面使用了spring.net linq to entity等 三层架构(面向接口) 参照这个:http://developer.51cto.com/art/200806/77172.htm 一两天赶出来的东西 要求就别太高了 俺自己的课设 *数据库使用 需要创建一个BookStore的...
MVC Linq to Entity 音乐商店简单实现了音乐商品的管理和分类查看功能,使用了MVC分页,Linq to Entity,对初学者很有帮助。 注意: 开发环境为Visual Studio 2010,数据库为SQLCE,数据库文件在App_Data文件夹...
最近在学习Code First + Linq to entity ,想自己写个比较通用的类似Helper的类,发现深了去了,先看这个代码,会有一定的帮助
LINQ To SQL实现分页效果源码 VS2008 Frameworks3.5 LINQ To SQL 实现分页效果 数据库SQL 2005
使用 LINQ To SQL 和Entity Framework实现灵活的数据访问使用 LINQ To SQL 和Entity Framework实现灵活的数据访问
linq to ef 实现in操作
LINQ to SQL语句(7)之Exists/In/Any/All/Contains LINQ to SQL语句(8)之Concat/Union/Intersect/Except LINQ to SQL语句(9)之Top/Bottom和Paging和SqlMethods LINQ to SQL语句(10)之Insert LINQ to SQL语句(11)之...
当应用程序运行时,LINQ to SQL 会将对象模型中的语言集成查询转换为 SQL,然后将它们发送到数据库进行执行。当数据库返回结果时,LINQ to SQL 会将它们转换回您可以用您自己的编程语言处理的对象。
linq to sql实现分层与gridview使用实现增删改,适合新手做三层项目开发,快速入门
linq2db.EntityFrameworkCore是LINQ To DB与现有EntityFrameworkCore项目的集成。 它受到EF.Core存储库中启发。 建造状态 提要 NuGet 蔚蓝神器 ( ) 独特的功能 快速快速加载(在大规模Include查询中无法比拟的更...
一个简单的linq to sql c#例子 实现数据库操作基本功能
linq基础 linq to sql linq基础 linq to sql
浅谈Linq to sql 的多表关联与动态条件查询