一步一步学Linq to sql(九):其它补充
系列文章导航:
一步一步学Linq to sql(二):DataContext与实体
已编译查询
对于一些在项目中经常被用到的查询可以封装成已编译查询,这样就能提高执行效率:
static class Queries { public static Func<NorthwindDataContext, string, IQueryable<Customer>> CustomersByCity = CompiledQuery.Compile((NorthwindDataContext ctx, string city) => from c in ctx.Customers where c.City == city select c); } |
调用查询方式如下:
GridView1.DataSource = Queries.CustomersByCity(ctx, "London"); GridView1.DataBind(); |
获取一些信息
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/>"); |
上面的代码执行结果如下:
Provider类型:System.Data.Linq.SqlClient.SqlProvider
|