易截截图软件、单文件、免安装、纯绿色、仅160KB

LINQ to Entities 实现sql 关键字"In"方式总结

在LINQ to Entities中没有办法再像 LINQ to SQL 中一样使用 Contains 的方法来实现sql "in" 关键字
下面代码在 LINQ to SQL 中可行 在LINQ to Entities却无法运行: 
var s = db.Account.Select(c => c.ID);
var ret =(from t in db.Profile
 where s.Contains(t.ID)
 select t).ToList();
替代方法1:使用方法Any
var ids=db.Account.Select(c => c.ID);
var ret = (from t in db.Profile where ids.Any(c=>c==t.UserID) select t).ToList();
使用方法Any替换法搞了好久都没法实现直接对数组Any,下列代码仍无法执行:
int[] ids = new int[]{10101,10005,10007};
var ret = (from t in db.Profile where ids.Any(c=>c==t.UserID) select t).ToList();
于是继续Goolge寻找第二种方法,在MSDN论坛上找一个构造Lambda语句的方法
替代方法2:构造Lambda语句
        private static Expression<Func<TElement, bool>> BuildWhereInExpression<TElement, TValue>(Expression<Func<TElement, TValue>> propertySelector, IEnumerable<TValue> 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(TValue))));
            var body&


相关文档:

sql中CASE的用法

 
来源:SQL帮助文档
CASE
计算条件列表并返回多个可能结果表达式之一。
CASE 具有两种格式:
简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
CASE 搜索函数计算一组布尔表达式以确定结果。
两种格式都支持可选的 ELSE 参数。
语法
简单 CASE 函数:
CASE input_expression
 &n ......

C# 获取 SQL服务器列表

#region   得到所有本地网络中可使用的SQL服务器列表  
  ///   <summary>  
  ///   得到所有本地网络中可使用的SQL服务器列表  
  ///   </summary>  
  ///   <param   name="p_strServerList">服务器列表</param& ......

sql语句 得到 sql server 表中列的类型和说明

通过Sql语句获得 列的类型和说明:
  得到的表头:表名|列名|类型|说明
  1:针对sql server 2000,在sql2000中,使用:sysobjects,syscolumns和sysproperties表
    SELECT o.name as table_name,c.name AS col_name,type_name(c.xtype) AS type_name,isnull(p.value,'') AS col_Pro ......

sql server高级查询


1)  统计各个系的学生信息
select count(Sname) 总人数,Sdept from Student group by Sdept
2)  查询信管系学生的最大年龄和最小年龄
select MAX(Sage) 最大年龄,MIN(Sage) 最小年龄 from Student where
Sdept='信管系'
3)  查询信管系最大年龄和最小年龄的学生的姓名
  select Sname from St ......

SQL优化工具Lecco SQL Expert For Oracle

在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/ 
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 
例如: 
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT'; 
2. /*+FIRST_ROW ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号