【发布时间】:2015-04-28 21:17:04
【问题描述】:
我正在与我的 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 在控制器中的使用如下,因为它从两个表中获取数据。我搜索了很多,也使用了匿名对象,但它仍然抛出相同的内部异常。
我也在这里搜索过,但我仍然找不到任何解决方案。任何指导将不胜感激。干杯。
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;
}
它抛出的错误是 this
【问题讨论】:
-
是否需要返回
IQueryable<T>? -
要么您没有显示完整的
samplemodelDTO类声明,要么您的 EF 上下文以某种方式知道samplemodelDTO类型并认为它是 EDM 的一部分。您的实体之一是否引用samplemodelDTO?如果答案是肯定的,您需要意识到 DTO 并不意味着是域模型的一部分,而仅用于以类型安全的方式传输数据。 -
我尝试了 List 和 IQueryable 两种方式。但没有从中得到任何东西
-
@haim770 它是完整的 DTO 类兄弟。
-
@haim770 ,我的上下文不知道 DTO。而且我知道它意味着客户端的数据呈现,因为它提供了灵活性
标签: c# linq asp.net-mvc-4 ef-code-first