zoukankan      html  css  js  c++  java
  • Linq to Sql学习总结7

    利用vs命令生成映射文件:

    通过 SqlServer 创建代码:
    SqlMetal /server:myserver /database:northwind /code:nwind.cs /namespace:nwind (若省略/user和/password则默认使用window身份认证连接数据库)
    通过 SqlServer 生成中间 dbml 文件:
    SqlMetal /server:myserver /database:northwind /dbml:northwind.dbml /namespace:nwind
    通过 dbml 生成包含外部映射的代码:
    SqlMetal /code:nwind.cs /map:nwind.map northwind.dbml
    通过 SqlCE sdf 文件生成 dbml:
    SqlMetal /dbml:northwind.dbml northwind.sdf
    通过 SqlExpress 本地服务器生成 dbml:
    SqlMetal /server:sqlexpress /database:northwind /dbml:northwind.dbml
    通过在命令行中使用连接字符串生成 dbml:
    SqlMetal /conn:"server='myserver'; database='northwind'" /dbml:northwind.dbml

    对于项目中经常用到的一些查询,可以将其封装成已编译查询,这样能提高执行效率:

    public static class Query1
        {
            //定义一个静态的Func泛型委托,指定调用该委托方法时传入NorthwindDataContext和string类型参数,并返回一个查询结果集
            //Compile方法内传入一个匿名方法体
            public static Func<NorthwindDataContext, string, IQueryable<Customers>>
                CustomersByCity = CompiledQuery.Compile((NorthwindDataContext ctx, string city)
                => from c in ctx.Customers where c.City == city select c);
        }

    获取一些信息:

    var query = from c in ctx.Customers select c;
    Response.Write("Provider类型:" + ctx.Mapping.ProviderType + "<br/>");
    Response.Write("数据库:" + ctx.Mapping.DatabaseName + "<br/>");
    Response.Write("表:" + ctx.Mapping.GetTable(typeof(Customer)).TableName + "<br/>");
    Response.Write("表达式:" + query.Expression.ToString() + "<br/>");
    Response.Write("sql:" + query.Provider.ToString() + "<br/>");
    //下面的代码会导致提交N次DELETE操作
    var query = from c in ctx.Customers select c;
    ctx.Customers.DeleteAllOnSubmit(query);
    ctx.SubmitChanges();
    
    //对于批量操作应使用sql命令(批量更新也是)
    string sql = string.Format("DELETE FROM {0}", ctx.Mapping.GetTable(typeof(Customers)).TableName);
    ctx.ExecuteCommand(sql);
  • 相关阅读:
    ElasticSearch——Logstash输出到Elasticsearch配置
    ElasticSearch——分词
    Kafka——JVM调优
    HBase管理与监控——强制删除表
    HBase管理与监控——HBase region is not online
    HBase管理与监控——内存调优
    C#利用WMI获取 远程计算机硬盘数据
    防止SQL注入方法总结
    C# 将一个DataTable的结构直接复制到另一个DataTable
    C# 按位或,按位与, 按位异或
  • 原文地址:https://www.cnblogs.com/JDotNet/p/3308939.html
Copyright © 2011-2022 走看看