LINQ to Entities不支持LINQ表达式节点类型'NewArrayBounds'

LINQ to Entities不支持LINQ表达式节点类型'NewArrayBounds'

问题描述:

 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();

在这里,角色"是一个整数数组,但不允许我分配一个空数组 与零. 帮助将不胜感激.

Here, Roles is an integer array but it is not letting me assign an empty array with zero. Help would be appreciated.

在您的类的空构造函数中初始化数组:

Initialize the array in an empty constructor of your class:

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();