Asp.net 加速LinqDataSource
你好,我有一个问题。假设数据库中有两个表:Asp.net 加速LinqDataSource,asp.net,linq-to-sql,gridview,linqdatasource,Asp.net,Linq To Sql,Gridview,Linqdatasource,你好,我有一个问题。假设数据库中有两个表: Clients( id, name, address) Orders( id, name, desc, datemodified, client_id) 第二个引用第一个,即每个订单都分配给客户机。现在,假设我有一个.aspx页面,其中有一个用于Orders表的LinqDataSource,还有一个GridView,它使用此数据源并显示一个包含以下列的表: 订单名称 订单描述 客户端名称 客户地址 据我所知,LINQ
Clients(
id,
name,
address)
Orders(
id,
name,
desc,
datemodified,
client_id)
第二个引用第一个,即每个订单都分配给客户机。现在,假设我有一个.aspx页面,其中有一个用于Orders表的LinqDataSource,还有一个GridView,它使用此数据源并显示一个包含以下列的表:
现在我看到了解决此问题的唯一方法-使用带有联接查询的SqlDataSource,该查询将一次检索所有必需字段。您可以覆盖LinqDataSource的OnSelecting事件,让它检索具有您要查找的确切数据的匿名类型:
protected void LinqDataSource_OnSelecting(object sender, LinqDataSourceSelectEventArgs e)
{
DataContext dc = new DataContext();
var query = from o in dc.Orders
select new
{
OrderName = o.name,
OrderDesc = o.desc,
ClientName = o.Client.name,
ClientAddress = o.Client.address
};
// Insert any necessary conditional statements adjustments as needed.
e.Result = query;
}
它将发送到数据库的查询将只获取这四个字段,并使用内部联接进行操作,因此每行只检索一次数据。在LinqDataSource.ContextCreated事件中设置LoadOptions 看看这里怎么做
这会影响网格视图的更新和删除操作吗?如果以这种方式切换数据源,LinqDataSource将如何执行更新和删除请求?