如果我的服务返回IEnumerable实体,我可以延迟加载相关实体吗?

时间:2011-08-01 17:49:27

标签: .net linq

我有这个实体:

public class Product
{
    public string Name { get; set; }
    public double Price { get; set; }

    public ProductManufacturer Manufacturer { get; set; }
}

我希望我的服务返回要在视图中显示的产品列表。我还需要使用延迟加载显示有关制造商(Product.Manufacturer)的信息。

我的服务应该返回IQueryable还是IEnumerable?谢谢。

2 个答案:

答案 0 :(得分:3)

IEnumerable<T>IQueryable<T>都是接口。他们都没有“支持”延迟加载。

答案 1 :(得分:1)

我认为在您使用它们之前,这些项目不会被序列化,如果这就是您的意思。我遇到了这个问题,从WCF服务返回LINQ表达式,并在WCF序列化程序尝试序列化结果时获得异常。解决方案是在序列化之前在IQueryable结果上调用ToArray()。

不知道这完全回答了你的问题吗?