我是ASP.NET新手,可以使用一些帮助为我的EntityDataSource编写where子句。ASP.NET EntityDataSource WHERE子句
我有以下EDS:
<asp:EntityDataSource ID="RidesEDS" runat="server"
ContextTypeName="RamRideOps.RamRideOpsEntities" EnableFlattening="False"
EntitySetName="Rides" EnableDelete="True" EnableUpdate="True">
</asp:EntityDataSource>
有“游戏机”的数据库,其中包含两个日期“AdminOptions”数据库:validDate1和validDate2 ...我需要的EDS,只显示在两个有效日期之间有'CallTime'的游乐设施。为了实现这一点,我在page_load上使用有效日期(hf_validDate1和hf_validDate2)填充两个隐藏字段。任何人都可以告诉我什么,我需要添加到EntityDataSource代码来完成这一点,通过比较CallTimes与hf的值与WHERE子句?
编辑:
这里是我到目前为止,虽然不是很合作..
<asp:EntityDataSource ID="RidesEDS" runat="server"
ContextTypeName="RamRideOps.RamRideOpsEntities" EnableFlattening="False"
EntitySetName="Rides" EnableDelete="True" EnableUpdate="True" Where="it.TimeOfCall > @validDate1Param AND it.TimeOfCall < @validDate2Param">
<WhereParameters>
<asp:ControlParameter ControlID="hf_validDate1" DbType="DateTime"
DefaultValue="1/01/2012 12:00:00 PM" Name="validDate1Param" PropertyName="Value" />
<asp:ControlParameter ControlID="hf_validDate2" DbType="DateTime"
DefaultValue="1/01/2112 12:00:00 PM" Name="validDate2Param" PropertyName="Value" />
</WhereParameters>
</asp:EntityDataSource>
<asp:HiddenField ID="hf_validDate1" runat="server" />
<asp:HiddenField ID="hf_validDate2" runat="server" />
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
using(RamRideOpsEntities myEntities = new RamRideOpsEntities())
{
var validDates = (from a in myEntities.AdminOptions
select new { a.ValidDate1, a.ValidDate2 }).FirstOrDefault();
if(validDates != null)
{
hf_validDate1.Value = validDates.ValidDate1.ToString();
hf_validDate1.Value = validDates.ValidDate2.ToString();
}
}
}
好吧,我想我正在得到一个地方,没有错误,但它似乎并没有过滤......我发布了我上面的内容,你介意看一眼吗? – SHeinema
好吧,你尝试调试吗?我会看着我的身边。 k –
是的,没有看到它..我可以很容易地在代码隐藏中获得正确的'游戏'列表,如果有一种简单的方法将它绑定到我正在显示的gridview,那也可以。 – SHeinema