0

次のように、文字列として保存されている24時間形式を現在の時刻と比較しようとしています。

    [AllowAnonymous]
    public ActionResult _ProgOn()
    {
        int i = (int)DateTime.Now.DayOfWeek;
        DateTime dt = DateTime.Now;
        var onNow = db.Programs
         .Where(u => u.PrOk == true)
         .Where(u => u.DaId == i)
         .Where(u => u.TimeOn == dt.ToString("HH:mm")); 
        return PartialView(onNow);

しかし、それはLinqクエリには受け入れられないようです。正しい方向を向いていただければ幸いです。

4

2 に答える 2

2

時間文字列をLinqクエリに渡します。

    int i = (int)DateTime.Now.DayOfWeek;
    string time = DateTime.Now.ToString("HH:mm");

    var onNow = from u in db.Programs
                where u.PrOk &&
                      u.DaId == i &&
                      u.TimeOn == time
                select u;

    return PartialView(onNow);

また、ブール値をtrue/falseと比較する必要はありません。そして、クエリ構文はここでより良く見えると思います。

于 2013-01-23T16:37:40.557 に答える
0

Linqは、翻訳できるものだけを使用できます。DateTimeをaに変換してからstring、比較を行ってみてください。

[AllowAnonymous]
public ActionResult _ProgOn()
{
    string t =  dt.ToString("HH:mm");

    int i = (int)DateTime.Now.DayOfWeek;
    DateTime dt = DateTime.Now;
    var onNow = db.Programs
     .Where(u => u.PrOk == true)
     .Where(u => u.DaId == i)
     .Where(u => u.TimeOn == t); 
    return PartialView(onNow);
于 2013-01-23T16:38:48.837 に答える