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

走进Linq Linq to SQL源代码赏析

在DataContext中我们打交道最多的也许就是GetTable<TEntity>()方法了,这个方法会获取一个Table<TEntity>对象,今天我们就来看看这个对象是如何获取的。
  对于获取Table<TEntity>对象我们还要看看这个DataContext是不是强类型的,关于强类型的DataContext可以看我前面一篇文章,强类型的DataContext里包含有几个Table<TEntity>类型的属性,比如我们的库中有blogs、posts等数据
库表,那么你可能就会建立Table<Blog>和Table<Post>类型的属性(参见前面一篇文章)。在上一章DataContext的初始化里讲到Init方法的最后一行是InitTables方法的调用。我们首先来看看InitTables方法的代码:
///<summary>
///初始化数据库中有几个表
///从方法实现中意图来看,这个方法主要在定义了强类型的DataContext才有意义
///在强类型的DataContext里一般定义了Table<Post>之类的字段来表示数据库中有几个
///表,该方法调用DataContext的GetTable方法设置这些字段的值
///</summary>
///<paramname="schema"></param>
private void InitTables(objectschema)
{
  //用反射遍历DataContext类(可能是它的子类)里所有的公有实例字段
   foreach(FieldInfo info in schema.GetType().GetFields(BindingFlags.Public|BindingFlags.Instance))
  {
    //字段类型
    Type fieldType=info.FieldType;
    //该字段是否是泛型的,并且是Table<>类型的,而且该字段的值为null
    if((fieldType.IsGenericType&&(fieldType.GetGenericTypeDefinition()==
      typeof(Table<>)))&&(((ITable)info.GetValue(schema))==null))
    {
       //获取Table<TEntity>中TEntity的具体类型
        Typetype=fieldType.GetGenericArguments()[0];
       //调用DataContext的GetTable方法得到一个ITable对象
        ITable table=this.GetTable(type);
       //设置值
        info.SetValue(schema,table);
     }
    }
}
代码中的注释说的很详细了,先看看DataContext类里是否有Table<TEntity>的属性,而只有在强类型的DataContext情况下才会有的。所以只有在强类型的情况下才会在初始化DataContext的时候设置这些Table<


相关文档:

SQL SERVER 2005安装完成后服务和组件介绍

SQL SERVER 服务
SQL Server Analysis Services :为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能(核心服务)。
SQL Server Browser:将 SQL Server 连接信息提供给客户端计算机
SQL Server FullText Search:快速创建结构化和半结构化数据的内容和属性
SQL Server VSS Writer:提供通过 Windows VSS 基础结构 ......

JAVA中防止SQL注入攻击类的源代码

package cn.com.hbivt.util;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class StringUtils {
//过滤通过页面表单提交 ......

如何开启SQL CLR

 如何开启SQL CLR
 
开启SQL CLR有两步操作,如下所示:
1.       开启SQLCLR,在sql server2005中执行如下脚本,开启SQL CLR功能
EXEC sp_configure 'show advanced options' , '1';
go
reconfigure;
go
EXEC sp_configure 'clr enabled' , '1'
go
reconfigure;
-- Tu ......

SQL 触发器详解

触发程序(trigger)是一种特殊型态的预存程序,当您使用Insert、Update或Delete命令来修改资料列时,Microsoft SQL Server会自动执行您所定义的触发程序。
       触发程序(trigger) 是一种特殊的预存程序,执行特定的陈述式(Update、Insert 或 Delete)就可以啟动触发程序。触发 ......

利用sql语句创建job

写了一段例子,通过sql创建一个job,定期执行一些清除工作。在sql2005上测试通过。
sql帮助文档太零散了。这是一个完整的流程。不过注意定时执行时需要sql server agent服务器启动的。
USE msdb ;
GO
EXEC dbo.sp_add_job
@job_name = N'Clear oldest HB',
@enabled = 1,
@description = N'Clear heart ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号