无法在 LINQ to Entities 查询中构造实体或复杂类型 'Ws.Models.XXXX'
The entity or complex type 'Ws.Models.XXXX' cannot be constructed in a LINQ to Entities query
我正在处理我的 MVC4 WEBAPI 项目。我所做的只是使用如下所示的 DTO(samplemodelDTO) 生成 Web 服务。
namespace Ws.Models
{
public class samplemodelDTO
{
[Key]
public int id { set; get; }
public string Productname { get; set; }
public int Productquantity { get; set; }
public string ProductReview { get; set; }
}
}
此 DTO 在控制器中的使用如下,因为它正在从两个表中获取数据。我搜索了很多,也使用了匿名对象,但它仍然抛出相同的内部异常。
我也在这里搜索,但我仍然找不到任何解决方案。任何指导都会受到高度appreciated.Cheers.
public IQueryable<samplemodelDTO> Getproducts()
{
var query = from t in db.products
join p in db.ratings on t.product_id equals p.prod_id
select new samplemodelDTO()
{
Productname = t.product_name,
Productquantity = t.quantity,
ProductReview = p.rating1
};
return query;
}
它抛出的错误是这个
为了安全起见,请尝试下面的方法,使用不同于上下文模型的命名空间。
namespace <NewNamespaceforDTO> //Ws.Models
{
public class samplemodelDTO
{
public int id { set; get; }
public string Productname { get; set; }
public int Productquantity { get; set; }
public string ProductReview { get; set; }
}
}
public List<samplemodelDTO> Getproducts()
{
var query = from t in db.products.AsEnumerable()
join p in db.ratings.AsEnumerable() on t.product_id equals p.prod_id
select new samplemodelDTO()
{
Productname=t.product_name,
Productquantity=t.quantity,
ProductReview=p.rating1
};
return query.ToList();
}
可能会有用。
我正在处理我的 MVC4 WEBAPI 项目。我所做的只是使用如下所示的 DTO(samplemodelDTO) 生成 Web 服务。
namespace Ws.Models
{
public class samplemodelDTO
{
[Key]
public int id { set; get; }
public string Productname { get; set; }
public int Productquantity { get; set; }
public string ProductReview { get; set; }
}
}
此 DTO 在控制器中的使用如下,因为它正在从两个表中获取数据。我搜索了很多,也使用了匿名对象,但它仍然抛出相同的内部异常。
我也在这里搜索,但我仍然找不到任何解决方案。任何指导都会受到高度appreciated.Cheers.
public IQueryable<samplemodelDTO> Getproducts()
{
var query = from t in db.products
join p in db.ratings on t.product_id equals p.prod_id
select new samplemodelDTO()
{
Productname = t.product_name,
Productquantity = t.quantity,
ProductReview = p.rating1
};
return query;
}
它抛出的错误是这个
为了安全起见,请尝试下面的方法,使用不同于上下文模型的命名空间。
namespace <NewNamespaceforDTO> //Ws.Models
{
public class samplemodelDTO
{
public int id { set; get; }
public string Productname { get; set; }
public int Productquantity { get; set; }
public string ProductReview { get; set; }
}
}
public List<samplemodelDTO> Getproducts()
{
var query = from t in db.products.AsEnumerable()
join p in db.ratings.AsEnumerable() on t.product_id equals p.prod_id
select new samplemodelDTO()
{
Productname=t.product_name,
Productquantity=t.quantity,
ProductReview=p.rating1
};
return query.ToList();
}
可能会有用。