C# 获取错误:无法在LINQ to Entities查询中构造实体或复杂类型

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

我创建了一个viewmodel:-

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