利用vs命令生成映射文件:通过 SqlServer 创建代码: SqlMetal /server:myserver /database:northwind /code:nwind.cs /namespace:nwind (若省略/user和/password则默认使用window身份认证连接数据库)通过 SqlServ...
利用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);
本文标题为:Linq to Sql学习总结7


- c# 获取已安装的打印机并调用打印文件 2023-03-14
- C#建立测试用例系统的示例代码 2023-03-04
- c# – Windows 10中的Html编辑类似于Mail应用程序? 2023-09-19
- C#使用LOCK实现线程同步 2023-05-31
- c#中多线程间的同步示例详解 2023-05-06
- 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 2022-11-11
- c# – Powershell中的HashSet:Collection是固定大小的 2023-09-20
- Unity 实现删除missing脚本组件 2023-04-10
- C# wpf Canvas中实现控件拖动调整大小的示例 2023-06-27
- C#中多态性的实现 2023-02-08