我是 ASP.NET 的新手,可以使用一些帮助来为我的 EntityDataSource 编写 where 子句。
我有以下 EDS:
<asp:EntityDataSource ID="RidesEDS" runat="server"
ContextTypeName="RamRideOps.RamRideOpsEntities" EnableFlattening="False"
EntitySetName="Rides" EnableDelete="True" EnableUpdate="True">
</asp:EntityDataSource>
有一个“Rides”数据库和一个“AdminOptions”数据库,其中包含两个日期:validDate1 和 validDate2...我需要 EDS 仅显示在两个有效日期之间具有“CallTime”的游乐设施。为此,在 page_load 上,我使用有效日期(hf_validDate1 和 hf_validDate2)填充了两个隐藏字段。任何人都可以通过将 CallTimes 与带有 WHERE 子句的 hf 的值进行比较来向我展示我需要添加到 EntityDataSource 代码中的内容吗?
编辑:
这是我到目前为止所拥有的,虽然不是很有效..
<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();
}
}
}