Asp.net mvc 5 存在MVC 5隐式转换

Asp.net mvc 5 存在MVC 5隐式转换,asp.net-mvc-5,Asp.net Mvc 5,我有一个存储库,我正在尝试获取一个查询以传递给控制器 public ProjectViewModel SearchContractors(string zip) { var query = (from h in repository.tblHandymen join hc in repository.tblHandyManCoverages on h.handymanID equals hc.handymanID

我有一个存储库,我正在尝试获取一个查询以传递给控制器

 public ProjectViewModel SearchContractors(string zip)
 {
     var query = (from h in repository.tblHandymen
                  join hc in repository.tblHandyManCoverages on h.handymanID equals hc.handymanID
                  join s in repository.tblServiceRequests on hc.zip equals s.zip
                  where hc.zip == zip
                  where h.handymanID == hc.handymanID
                  where h.status == "Active"
                  select h
                  );
     ProjectViewModel model = new ProjectViewModel
     {
         ContractorSearch = query.AsEnumerable()                                 
     };

     return model;
 }
我被困在这里

ProjectViewModel model = new ProjectViewModel
{
    ContractorSearch = query.AsEnumerable()                                 
};

错误是存在隐式转换。我试过几件事。没用

您的查询没有返回
ProjectContractorSearchViewModel
对象的集合(它返回的是
tblHandymen
的集合)。您需要将结果投影到typeof
ProjectContractorSearchViewModel

var query = (from h in repository.tblHandymen
             .....
            ).Select(x => new ProjectContractorSearchViewModel
            {
                someProperty = x.someProperty,
                anotherProperty = x.anotherProperty,
                ....
            });
ProjectViewModel model = new ProjectViewModel
{
    ContractorSearch = query.AsEnumerable()                            
};
return model;

您的查询没有返回
ProjectContractorSearchViewModel
对象的集合(它返回的是
tblHandymen
的集合)。您需要将结果投影到typeof
ProjectContractorSearchViewModel

var query = (from h in repository.tblHandymen
             .....
            ).Select(x => new ProjectContractorSearchViewModel
            {
                someProperty = x.someProperty,
                anotherProperty = x.anotherProperty,
                ....
            });
ProjectViewModel model = new ProjectViewModel
{
    ContractorSearch = query.AsEnumerable()                            
};
return model;

ContractorSearch
的类型是什么?public IEnumerable ContractorSearch{get;set;}我的建议是,不要在视图模型中混用数据访问代码。它完全违背了视图模型和关注点分离的目的。我的视图模型没有数据访问代码。不确定您的意思。您的查询没有返回
项目承包商SearchViewModel
的集合。您需要将数据投影到类型-
var query=(..)。选择(x=>newprojectContractorSearchViewModel{someProperty=x.someValue
ContractorSearch的类型是什么?
public IEnumerable ContractorSearch{get;set;}我的建议是,不要在视图模型中混合使用数据访问代码。它完全违背了视图模型和关注点分离的目的。我的视图模型没有数据访问代码。不确定您的意思。您的查询没有返回
项目承包商SearchViewModel
的集合。您需要将数据投影到类型-
var query=(..)。选择(x=>newprojectContractorSearchViewModel{someProperty=x.someValue