的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支撑到实体
答
初始化数组类的空构造函数:“空数组零”
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
你是什么意思删除你是要求一个空的,零长度的整数数组,还是一个单值为零的整数数组? – n8wrl
抱歉让人混淆。它的整数数组中有一个值为零的单个元素 – Sumi
那么你需要'new int [1]'或者'new int [] {0}'?如果你的LINQ被转换为SQL查询,我仍然可以看到它不被支持,尽管它似乎适用于LINQ to SQL。你可以尝试创建一个临时变量('var emptyRoles = new int [] {0};')并使用它。 – NetMage