0

这是我的实体数据源:

<asp:EntityDataSource ID="edsUsers" runat="server"
ConnectionString="name=kdEntities" DefaultContainerName="kdEntities" EnableDelete="True"
EnableFlattening="False" EnableInsert="True" EnableUpdate="True" 
EntitySetName="Users" AutoGenerateWhereClause="true">
<WhereParameters>
    <asp:SessionParameter Name="UsrID" SessionField="UsrID" DefaultValue="-1" Type="Int32" />
</WhereParameters>

我假设我需要使用 EntityDatasource 的 OnSelecting 事件,但我还没有弄清楚如何检查参数值。

如果值为 -1,我想取消查询,但我更愿意检查数据源而不是参数使用的 Session 字段。

谢谢凯文

4

1 回答 1

1

您可能会考虑添加一个 Object 类型的自定义参数。这有望解决您的问题。

<WhereParameters>
            <cmsParameter:CustomParameter Name="UsrID" />
</WhereParameters>

然后你可以添加一个新的自定义参数类,比如

public class CustomParameter : Parameter
{
    protected override object Eval(HttpContext context, Control control)
    {
        MembershipUser cur_User = Membership.GetUser();
        return cur_User.ProviderUserKey;
    }
}

这实际上被分配给我们指定的“UsrID”自定义参数。

于 2012-06-22T22:17:06.373 回答