私は 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」のデータベースと、「validDate1」と「validDate2」の 2 つの日付を含む「AdminOptions」のデータベースがあります... 2 つの有効な日付の間に「CallTime」がある乗車のみを表示するには、EDS が必要です。これを容易にするために、page_load で 2 つの非表示フィールドに有効な日付 (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();
}
}
}