C# 实体框架将linq中的字节数组设置为实体时出错
我在linq到实体查询中遇到一个异常 LINQ to实体中不支持LINQ表达式节点类型“NewArrayBounds” 当我尝试获取“RegisteredInstructorImage”时 下面是我要做的,以获得错误C# 实体框架将linq中的字节数组设置为实体时出错,c#,entity-framework,linq,linq-to-entities,C#,Entity Framework,Linq,Linq To Entities,我在linq到实体查询中遇到一个异常 LINQ to实体中不支持LINQ表达式节点类型“NewArrayBounds” 当我尝试获取“RegisteredInstructorImage”时 下面是我要做的,以获得错误 .Select(i => new EventResult { IsInstructorRegistered = i.RegisteredInstructor == null ? false : true,
.Select(i => new EventResult
{
IsInstructorRegistered = i.RegisteredInstructor == null ? false : true,
RegisteredInstructorId = i.RegisteredInstructor != null ? i.RegisteredInstructor.YogaProfileId : 0,
RegisteredInstructorName = i.RegisteredInstructor != null ? i.RegisteredInstructor.FirstName : "",
RegisteredInstructorImage = i.RegisteredInstructor != null ? i.RegisteredInstructor.PrimaryImage11 : new byte[0],
RegisteredInstructorTotalReviews = i.RegisteredInstructor != null ? i.RegisteredInstructor.TotalReviews : 0,
}).ToPagedList(Page, 10);
在EventResult
中,我按照如下方式初始化它,但这并没有影响我的结果,我仍然得到错误。我做错什么了吗
public class EventResult
{
public EventResult()
{
RegisteredInstructorImage = new byte[] { 0 };
}
public byte[] RegisteredInstructorImage { get; set; }
}
我建议改变:
i.RegisteredInstructor != null ? i.RegisteredInstructor.PrimaryImage11 : new byte[0]
致:
然后考虑更改<代码> > RealStestDealTrimeIs>代码>的属性设置器,以便它检查<代码> null <代码>(如果您想要更改为空数组)。< /P>一个选项是向代码< >事件结果< /代码>添加<代码> RealStest-Dealthor < /Cuff>属性。然后将
RegisteredInstructorName
属性设置为只读(并从RegisteredInstructor.FirstName
中读取),其他属性的设置大致相同。我认为最好的解决方案是这样。i、 RegisteredInstructor.PrimaryImage11??null,我可以将字节[]设置为可为null的字节?[]I.RegisteredInstructor.PrimaryImage11??空值
是没有意义的。(因为?
会将null
转换为,null
)i.RegisteredInstructor?.PrimaryImage11
更好。此外,默认情况下数组可以为空。EF提供程序无法从任意.Net函数创建SQL。错误就是这么说的。您应该搜索“不支持LINQ表达式节点类型”以查看更多详细信息和可能的解决方法。此语法看起来不正确,并在下面给我一条红线。您使用的是什么版本的C#?编译器错误消息是什么@user1186050I刚刚使用2016数据中心在Azure中创建了一个虚拟机,它与VS 2017一起预装,所以我假设它是最新的,以最新的为准。。。
i.RegisteredInstructor?.PrimaryImage11