Linq数据源和关系数据问题

问题描述 投票:0回答:1

我的 linqdatasource 有问题。我的页面中有 gridview ,并将其数据源设置为 linqdatasource ,还设置了 AllowPaging="True" 、AllowSorting="True" 。

<asp:GridView ID="cityGrid" runat="server" AutoGenerateColumns="False" 
DataKeyNames="CityId" AllowPaging="True" 
AllowSorting="True" DataSourceID="LinqCityData">

现在在linqdatasource中我想从两个表(带有FK的关系表)中检索数据,这一步没有问题。 我可以像这样使用 linqdatasource 的 Select 属性从其他表中进行选择

<asp:LinqDataSource ID="LinqCityData" runat="server" 
ContextTypeName="ContactSysDataContext" 
TableName="Office_ContactSys_Cities" 
Select="new (CityId, CityName , Office_ContactSys_Province.ProvinceName)">
</asp:LinqDataSource>

或者我在 linqdatasource 中使用 Selection 事件

protected void LinqCityData_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        ContactSysDataContext db = new ContactSysDataContext();
        var CityResult= from p in db.Office_ContactSys_Cities join o in db.Office_ContactSys_Provinces on p.ProvinceId equals o.ProvinceId select new { o.ProvinceName, p.CityId, p.CityName };
        e.Result = CityResult;
    }

但在此步骤之后,我无法在 linqdatasource 中使用自动删除,而是收到此错误:

LinqDataSource 'LinqCityData' 没有 支持 Select 属性时 删除、插入或更新操作 已启用

这是我的问题:如何使用linqdatasource(启用删除或更新的linqdatasource)在gridview(当然对于关系表)中实现分页?

gridview pagination linq-to-sql linqdatasource
1个回答
2
投票

如果从 linqdatasource 中删除 select 语句,您将不会再收到该错误。 然后就可以使用更新、删除和插入。 哦,您还必须在数据源中启用删除、插入和更新。

这是一个例子:

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="Custom.Data.DataAccessDataContext"

    TableName="CustomerSegmentMappings" 
    EnableDelete="True"
    EnableInsert="True"
    EnableUpdate="True">
</asp:LinqDataSource>
© www.soinside.com 2019 - 2024. All rights reserved.