C# Net MVC5 Linq查询以检查表中的数据

C# Net MVC5 Linq查询以检查表中的数据,c#,asp.net,linq,C#,Asp.net,Linq,我正在尝试编写一个LINQ查询,它将根据用户输入的值检查表中的数据。这样做的目的是,供应商将获得分配给他们的计划,该计划将包含他们必须针对该用户完成的时间量。这是通过计划模型和控制器完成的。然后,供应商必须根据用户的实际完成时间完成。在这个阶段,供应商正在填写时间表,因此我希望检查时间是否大于分配给他们的时间 我已尝试使用以下查询 var Time = db.Plans.Any(s => (s.CustomerId == timeSheet.CustomerId) &&

我正在尝试编写一个LINQ查询,它将根据用户输入的值检查表中的数据。这样做的目的是,供应商将获得分配给他们的计划,该计划将包含他们必须针对该用户完成的时间量。这是通过计划模型和控制器完成的。然后,供应商必须根据用户的实际完成时间完成。在这个阶段,供应商正在填写时间表,因此我希望检查时间是否大于分配给他们的时间

我已尝试使用以下查询

 var Time = db.Plans.Any(s => (s.CustomerId == timeSheet.CustomerId) && ((s.Monday <= plan.Monday)));
计划模型:

public class Plan
{
    [Key]
    public int PlanId { get; set; }
    [DataType(DataType.Time)]
    [Range(typeof(TimeSpan), "00:00", "12:00")]
    [DisplayFormat(DataFormatString = @"{0:hh\:mm\:ss}")]
    public TimeSpan? Monday { get; set; }
    [DataType(DataType.Time)]
    public TimeSpan Tuesday { get; set; }
    [DataType(DataType.Time)]
    public TimeSpan Wednesday { get; set; }
    [DataType(DataType.Time)]
    public TimeSpan Thursday { get; set; }
    [DataType(DataType.Time)]
    public TimeSpan Friday { get; set; }
    [DataType(DataType.Time)]
    public TimeSpan Saturday { get; set; }
    [DataType(DataType.Time)]
    public TimeSpan Sunday { get; set; }

    public int CustomerId { get; set; }
    public int AgreementId { get; set; }

    [HiddenInput(DisplayValue = false)]
    public bool CustomerHasPlan { get; set; }
和时间表控制器:

    // GET: TimeSheets/Create
    public ActionResult Create(int? ID)
    {
        if(ID == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        TimeSheet model = new TimeSheet();
        // model.FullName = Name;
        model.CustomerId = ID;
        return View(model);
    }


    // POST: TimeSheets/Create
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "TimeSheetId,WeekCommencing,WeekEnding,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,CompletedTimeSheet,CustomerId,Total")] TimeSheet timeSheet, Plan plan)
    {

        if (ModelState.IsValid)
        {
            var Monday_test = db.TimeSheets.Any(s => (s.CustomerId == timeSheet.CustomerId) && (s.Monday <= timeSheet.Monday));
            if (!Monday_test)
            {

                db.TimeSheets.Add(timeSheet);
                db.SaveChanges();
                return RedirectToAction("Index");

            }

            else
            {
                return View("Error");
            }
        }

        return View(timeSheet);
    }
//获取:时间表/创建
公共操作结果创建(int?ID)
{
if(ID==null)
{
返回新的HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
时间表模型=新时间表();
//model.FullName=名称;
model.CustomerId=ID;
返回视图(模型);
}
//张贴:时间表/创建
//若要防止套印攻击,请启用要绑定到的特定属性,例如
//更多详细信息请参见http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
公共操作结果创建([Bind(Include=“TimeSheetId,WeekCommunication,WeekEnding,周一,周二,周三,周四,周五,周六,周日,CompletedTimeSheet,CustomerId,Total”)]时间表时间表,计划
{
if(ModelState.IsValid)
{

var Monday\u test=db.TimeSheets.Any(s=>(s.CustomerId==timeSheet.CustomerId)和&(s.Monday不能真正判断查询在做什么,但是通过查看查询并将其与模型进行比较,您将Monday拼写为“Maonday”

尝试:


var Time=db.Plans.Any(s=>(s.CustomerId==timeSheet.CustomerId)&((s.Monday@Neva抱歉,应该是星期一)当你说“似乎不起作用”时,这意味着什么?它会引发异常吗?它会返回错误的结果吗?你到底希望看到什么,会发生什么?你所说的是什么意思“它似乎不起作用”?查询没有返回正确的信息或某种运行时错误?当我知道该值应该为true时,它会将其放到我的else语句中。例如,星期一分配了01:15的值,但是如果用户将该值放入01:15,它会放到else语句中。
    // GET: TimeSheets/Create
    public ActionResult Create(int? ID)
    {
        if(ID == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        TimeSheet model = new TimeSheet();
        // model.FullName = Name;
        model.CustomerId = ID;
        return View(model);
    }


    // POST: TimeSheets/Create
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "TimeSheetId,WeekCommencing,WeekEnding,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,CompletedTimeSheet,CustomerId,Total")] TimeSheet timeSheet, Plan plan)
    {

        if (ModelState.IsValid)
        {
            var Monday_test = db.TimeSheets.Any(s => (s.CustomerId == timeSheet.CustomerId) && (s.Monday <= timeSheet.Monday));
            if (!Monday_test)
            {

                db.TimeSheets.Add(timeSheet);
                db.SaveChanges();
                return RedirectToAction("Index");

            }

            else
            {
                return View("Error");
            }
        }

        return View(timeSheet);
    }
 var Time = db.Plans.Any(s => (s.CustomerId == timeSheet.CustomerId) && ((s.Monday <= plan.Monday)));