的LINQ表达式节点类型“NewArrayBounds”不是在LINQ支撑到实体

问题描述:

select new ProviderMeta 
      { 
       LoginId = user.LoginId, 
       AgencyId = user.AgencyId, 
       Application = user.Application, 
       UserId = user.UserId, 
       Name = agencySnapshot.Name, 
       Roles = new int[0], 
       Cluster = app.ClusterId ?? 0, 
       Created = app.Created, 
       TitleType = user.TitleType, 
       Feature = (foundFeature == null ? 0 : foundFeature.Feature) 
      }).ToList(); 

在此,角色是一个整数阵列,但它不是让我分配一个空数组 零。 帮助,将不胜感激。的LINQ表达式节点类型“NewArrayBounds”不是在LINQ支撑到实体

+0

你是什么意思删除你是要求一个空的,零长度的整数数组,还是一个单值为零的整数数组? – n8wrl

+0

抱歉让人混淆。它的整数数组中有一个值为零的单个元素 – Sumi

+0

那么你需要'new int [1]'或者'new int [] {0}'?如果你的LINQ被转换为SQL查询,我仍然可以看到它不被支持,尽管它似乎适用于LINQ to SQL。你可以尝试创建一个临时变量('var emptyRoles = new int [] {0};')并使用它。 – NetMage

初始化数组类的空构造函数:“空数组零”

public class ProviderMeta 
{ 
    //... 
    public ProviderMeta() 
    { 
    Roles = new int[]{0}; 
    } 
} 

而且从投影

select new ProviderMeta 
     { 
      LoginId = user.LoginId, 
      AgencyId = user.AgencyId, 
      Application = user.Application, 
      UserId = user.UserId, 
      Name = agencySnapshot.Name, 
      //Roles = new int[0], remove this line 
      Cluster = app.ClusterId ?? 0, 
      Created = app.Created, 
      TitleType = user.TitleType, 
      Feature = (foundFeature == null ? 0 : foundFeature.Feature) 
     }).ToList(); 
+0

抱歉它不工作。我相信它在Linq中是一个问题,而不是构造者。 – Sumi

+0

但您是否在查询投影中删除了数组初始化? – octavioccl

+0

是的,当你提出这个解决方案后,我做了很大的努力。 – Sumi