Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 Linq到实体,视图模型-日期时间_Asp.net Mvc 3_Entity Framework_Linq To Entities - Fatal编程技术网

Asp.net mvc 3 Linq到实体,视图模型-日期时间

Asp.net mvc 3 Linq到实体,视图模型-日期时间,asp.net-mvc-3,entity-framework,linq-to-entities,Asp.net Mvc 3,Entity Framework,Linq To Entities,我有一个带有开始日期日期时间字段(SQL Server)的db表。在我的存储库中,我有一个“getall”方法返回所有列。我还有一个带有DateTime Startdate字段的viewmodel 存储库属性: public IQueryable<Module> LeadershipModules { get { return from module in context.Modules where module

我有一个带有
开始日期
日期时间字段(SQL Server)的db表。在我的存储库中,我有一个“getall”方法返回所有列。我还有一个带有
DateTime Startdate
字段的viewmodel

存储库属性:

    public IQueryable<Module> LeadershipModules
    {
        get
        {
            return from module in context.Modules where module.ModuleTypeId == 2 select module;
        }
    }
当我尝试以下方法时:

StartDate=来自repository.LeadershipModules中的StartDate,其中StartDate.StartDate>DateTime。现在选择StartDate

我得到下面的错误消息错误

错误1无法将类型“System.Linq.IQueryable”隐式转换为“System.DateTime”控制器\ModuleController.cs 41 117 WebUI


我做错了什么?

您必须使用
Single()
First()
扩展方法。例如:

StartDate = (
    from module in repository.LeadershipModules
    where module.StartDate > DateTime.Now 
    select module.StartDate)
    .First();

您定义的查询是一个
IQueryable
,它基本上是
模块
对象的集合。C#不能隐式地将其转换为DateTime。您必须进行正确的映射,这意味着选择StartDate对象,而不是模块。然后执行查询并获取列表中的单个项目(第一项、最后一项、唯一项、最大值、最小值等)。

您查看的内容包含多个模块,但只有一个开始日期。开始日期的具体值是多少?我想获取特定日期之后的所有模块。我是否做错了?谢谢,但我正在尝试获取所有大于今天日期的模块。
StartDate = (
    from module in repository.LeadershipModules
    where module.StartDate > DateTime.Now 
    select module.StartDate)
    .First();
public ActionResult Leadership()
{
    DateTime startDate = DateTime.Now;
    var modules = repository.LeadershipModules.Where(m => m.StartDate > startDate);

    var viewModel = new LeadershipModulesViewModel
    {
        LeadershipModules = modules,
        StartDate = startDate
    };

    return View(viewModel);
}