【问题标题】: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()
        

        【讨论】:

          猜你喜欢
          • 2020-01-14
          • 1970-01-01
          • 1970-01-01
          • 2013-12-02
          • 1970-01-01
          • 1970-01-01
          • 2017-12-17
          相关资源
          最近更新 更多