C# 获取错误:无法在LINQ to Entities查询中构造实体或复杂类型
我创建了一个viewmodel:-C# 获取错误:无法在LINQ to Entities查询中构造实体或复杂类型,c#,asp.net-mvc-3,linq,C#,Asp.net Mvc 3,Linq,我创建了一个viewmodel:- public class viewdata : Tool.Models.Administration.User { public string Categories { get; set; } public int RegionID { get; set; } public string RegionName { get; set; } } 它首先是在控制器中创建的。然后我将其位置更改为Tool
public class viewdata : Tool.Models.Administration.User
{
public string Categories { get; set; }
public int RegionID { get; set; }
public string RegionName { get; set; }
}
它首先是在控制器中创建的。然后我将其位置更改为Tool.Models.Derived.viewdata。然后我在控制器中的Actionresult列表中得到错误
public ActionResult Lists(int? page)
{
var ListIFC = (from f in _db.Users
where f.IsActive == 1 && f.UserType == 2
select new viewdata
{
UserName=f.UserName,
FirstName = f.FirstName,
UserID=f.UserID
});
List<Tool.Models.Derived.viewdata> obj = (List<Tool.Models.Derived.viewdata>)ListIFC.ToList();
int pageSize = 3;
int pageNumber = (page ?? 1);
return View(obj.ToPagedList(pageNumber, pageSize));
}
根据你的声明:
select new viewdata
您正试图将查询结果投影到从实体框架派生的类
viewdata
。在LINQ to entities投影中,不能这样做。相反,您可以创建一个临时类并将其投影到该类或将其投影到 若我在控制器内创建临时类,那个么在业务中可以访问吗layer@Mizbella,我认为不是,通常控制器引用业务层,所以您可以在业务层中定义temporay类并从控制器访问它
select new viewdata