The entity cannot be constructed in a LINQ to Entities query 原因及修复方法

public IQueryable<Product> GetProducts(int categoryID)
{
    return from p in db.Products
           where p.CategoryID== categoryID
           select new Product { Name = p.Name};
}

我也用以上这个案例

其实出这个问题的原因很简单,就是他不能创建一个一模一样的自己 

改成 

from p in db.Products select p ;就对了

所以后边的   select new + 实体  ,实体必须换一个全新的,与当前查询实体带有一定区别

 要么换一个实体,要么拿着  from p in db.Products 的结果去操作,切记不可在linq里面直接转换

即使实体换个名字,内部字段不变也会报错,所以,务必创建一个与当前查询实体不同的class

 

posted @ 2023-03-29 17:22  心中Where_True循环  阅读(50)  评论(0编辑  收藏  举报