【问题标题】:how to convert entity collection to a array [closed]如何将实体集合转换为数组 [关闭]
【发布时间】:2015-07-02 19:48:02
【问题描述】:
我想为整数数组选择一些数据库 int 值。下面的代码出现错误
int[] lst = contxt.tbl_ReportingAthorityDetails.Where(x => x.isDelete == false && x.reportingAthority == lgdempid).Select(x => new { x.employeeId}).ToArray();
错误是
Cannot implicitly convert type 'AnonymousType#1[]' to 'int[]'
【问题讨论】:
标签:
c#
asp.net
entity-framework
entity-framework-4
entity
【解决方案1】:
错误是因为您的选择查询中的“新”创建了匿名类型类。
Select(x => new { x.employeeId}).ToArray()
删除新的将解决问题。
contxt.tbl_ReportingAthorityDetails.Where(x => x.isDelete == false &&
x.reportingAthority == lgdempid).Select(x => x.employeeId).ToArray();
【解决方案2】:
Select(x => x.employeeId).ToArray()
应该足够了,而不是
Select(x => new { x.employeeId}).ToArray()
后者产生一个匿名类的实例,它的唯一成员是 int 类型,并且不能强制转换为除对象之外的任何东西。
【解决方案3】:
你应该试试这个,因为它会创建一个匿名类的实例:
.Select(x => x.employeeId).ToArray()
【解决方案4】:
在 Select 中使用匿名类型会导致此错误。
将查询的“选择”部分重写为:
.Select(x => x.employeeId).ToArray()