首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >网格显示为空白,我不想使用TypeProducts这样的匿名类型{}

网格显示为空白,我不想使用TypeProducts这样的匿名类型{}
EN

Stack Overflow用户
提问于 2015-12-01 23:02:42
回答 1查看 27关注 0票数 0
代码语言:javascript
运行
复制
 public class GridData
    {
        public static IList gridDatos()
        {
            {
                using (EnterpriseEntities dbcontext = new EnterpriseEntities())
                {
                       var _products = dbcontext.Products.
                        Include(c => c.TypeProducts).ToList();
                    return _products;
                }
            }
        }
   }
EN

回答 1

Stack Overflow用户

发布于 2015-12-02 01:05:03

您忘记在方法的返回类型部分指定要返回的IList类型。

代码语言:javascript
运行
复制
public static IList<Product> gridDatos()
{
    using (var dbcontext = new EnterpriseEntities())
    {
         var _products = dbcontext.Products.
                        Include(c => c.TypeProducts).ToList();
         return _products;
    }
}

或者你有DTO的/POCCO的/ ViewModels,你可以在你的LINQ表达式中对其进行投影,以确保你只对你的数据库执行一次查询。如果不是,如果您在razor视图中迭代Product集合并尝试访问不同类型的Navgation属性,它将对其中的每个唯一记录再次执行查询。阅读有关延迟执行here的更多信息。

假设你有一个这样的DTO

代码语言:javascript
运行
复制
public class ProductDto
{
  public int Id {set;get;}
  public string Name {set;get;}
  public List<TypeProductDto> Types {set;get;}
}           
public class TypeProductDto 
{
  public class string TypeName {set;get; }
}

因此,在您的LINQ表达式中,将结果投影到新的DTO

代码语言:javascript
运行
复制
public static List<ProductDto> GetProducts()
{
    using (var dbcontext = new EnterpriseEntities())
    {
         var _products = dbcontext.Products.
                        Select(x=> new ProductDto
                           {  Id =x.Id, 
                              Name =x.Name,
                              Types= x.TypeProducts
                                       .Select(t=>new TypeProductDto
                                                  { Name =x.Name})
                           }).ToList();
         return _products;
    }
}

这将只执行一个查询,并将结果映射到DTO。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34023453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档