首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将存储在会话变量中的对象的属性作为WhereParameter在EntityDataSource中使用?

如何将存储在会话变量中的对象的属性作为WhereParameter在EntityDataSource中使用?
EN

Stack Overflow用户
提问于 2021-06-01 15:57:37
回答 1查看 58关注 0票数 2

早上好!

我正在使用一个EntityDataSource,并希望使用一个WhereParameter来过滤它,它是存储在会话变量session (“票证”)中的对象的一个属性。这个是可能的吗?

下面是用于存储在会话变量中的票据对象的类

代码语言:javascript
复制
Partial Public Class TICKET
    Private _ID As Integer              '-- I want to use the property "ID" as the parameter
    Private _Category As String     
    Private _Status As String
    Private _Priority As String
    ...
    ...
End Class

下面是一些标记,但不确定如何将属性"ID“作为参数

代码语言:javascript
复制
<asp:EntityDataSource ID="edsDBase" runat="server"  AutoGenerateWhereClause="True"
     ConnectionString="name=edsDBContainer"
     DefaultContainerName="edsDBContainer" EnableFlattening="False"
    EntitySetName="edsTicket" EnableDelete="True" EnableInsert="True"
    EnableUpdate="True" EntityTypeFilter="tbICObjectBase">
       <WhereParameters>
         <asp:SessionParameter SessionField="Ticket.ID (this is what I'd like to do)" Name="TicketID" Type="Int32" />
       </WhereParameters>
</asp:EntityDataSource>

我还试着通过EntityDataSource的EntityDataSource事件编程地做这件事,但也对此感到困惑。

代码语言:javascript
复制
Protected Sub edsTickets_OnSelecting(sender As Object, e As EntityDataSourceSelectingEventArgs)
    Dim eds As EntityDataSource = CType(sender, EntityDataSource)
    Dim ticket As V_TICKETS = Session("Ticket")
    Dim xparam As New Parameter("ID", DbType.Int32)
    xparam.DefaultValue = ticket.ID
    eds.WhereParameters.Add(xparam)
End Sub

但这带来了一个例外,即我不能将EntityDataSourceView转换为EntityDataSource。有人能帮我解决这个问题吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-08 16:38:57

通过处理来自OnSelecting的EntityDataSource事件,解决了我的问题。

代码语言:javascript
复制
Protected Sub edsTickets_OnSelecting(sender As Object, e As EntityDataSourceSelectingEventArgs)
    Dim eds As EntityDataSource = e.DataSource 'As suggested by G3nt_M3caj on Jun 1 at 16:29. Thanks again!
    Dim ticket As V_TICKETS = Session("Ticket")
    Dim xparam As New Parameter("ID", DbType.Int32)
    xparam.DefaultValue = ticket.ID
    eds.WhereParameters.Add(xparam)
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67792220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档