Linqdatasource和关系数据问题

发布于 2024-07-26 06:41:53 字数 1402 浏览 13 评论 0原文

我的 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(当然对于关系表)中实现分页?

I have a problem with linqdatasource. I have gridview in my page and I set it's datasource to linqdatasource,also I set AllowPaging="True" , AllowSorting="True".

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

Now in linqdatasource I want to retrieve data from two tables (relational tables with FK), there is no problem in this step.
I can use Select property of linqdatasource like this to select from other table

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

or I cas use Selection event in linqdatasource

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;
    }

but after this step I can't use automatic delete in linqdatasource and instead I recieve this error:

LinqDataSource 'LinqCityData' does not
support the Select property when the
Delete, Insert or Update operations
are enabled

Here is my question: How can I implement paging in gridview (of course for relational tables) using linqdatasource (linqdatasource with enabled delete or update)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

会发光的星星闪亮亮i 2024-08-02 06:41:53

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

这是一个例子:

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

    TableName="CustomerSegmentMappings" 
    EnableDelete="True"
    EnableInsert="True"
    EnableUpdate="True">
</asp:LinqDataSource>

If you remove the select statement from the linqdatasource, you will not get that error anymore. And then you can use update, delete and insert. Oh you'll also have to enable the delete insert and update in the datasource.

Here's an example:

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

    TableName="CustomerSegmentMappings" 
    EnableDelete="True"
    EnableInsert="True"
    EnableUpdate="True">
</asp:LinqDataSource>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文