繁体   English   中英

c# asp.net:无法比较“System.Int32[]”类型的元素。 仅支持原始类型、枚举类型和实体类型。

[英]c# asp.net: Cannot compare elements of type 'System.Int32[]'. Only primitive types, enumeration types and entity types are supported.'

我正在尝试针对 AspNetUsersGroupMaps 表中的一组值查询我的 ProductiveUnits 表。 AspNetUserID 可以链接到 AspNetUsersGroupMaps 表上的许多 UserGroupID。 我只希望返回 ProductiveUnits 列表,其中 ProductiveUnit.UserGroupID = AspNetUsersGroupMaps.UserGroupID 如下:

   public ActionResult ProductiveUnits_Read([DataSourceRequest]DataSourceRequest request)
    {
        var UserID = User.Identity.GetUserId();
        int[] selectedIds = db.AspNetUsersGroupMaps.Where(t => t.AspNetUserID == UserID).Select(x => x.UserGroupID).ToArray();
        IQueryable<ProductiveUnit> productiveunits = db.ProductiveUnits.Where(p => p.UserGroupID.Equals(selectedIds)); 
        DataSourceResult result = productiveunits.ToDataSourceResult(request, productiveUnit => new {
            ProdUnitID = productiveUnit.ProdUnitID,
            PU_Text = productiveUnit.PU_Text,
            PUGroup = productiveUnit.PUGroup,
            SerialNo = productiveUnit.SerialNo,
            ExtSysPU_ID = productiveUnit.ExtSysPU_ID,
            ProdUnitNo = productiveUnit.ProdUnitNo,
            CompanyID = productiveUnit.CompanyID,
            Criticality = productiveUnit.Criticality,
            YearModel = productiveUnit.YearModel,
            CostCentreID = productiveUnit.CostCentreID,
            CurrencyID = productiveUnit.CurrencyID,
            StartupDate = productiveUnit.StartupDate,
            UserGroupID = productiveUnit.UserGroupID,
        });

        return Json(result);
    }

我收到以下错误:

无法比较“System.Int32[]”类型的元素。 仅支持原始类型、枚举类型和实体类型。

我的 AspNetUsersGroupMap 模型:

public partial class AspNetUsersGroupMap
{
    public int ID { get; set; }
    public string AspNetUserID { get; set; }
    public int UserGroupID { get; set; }

    public virtual UserGroup UserGroup { get; set; }
    public virtual AspNetUser AspNetUser { get; set; }
}

请协助

使用Contains

p => selectedIds.Contains(p.UserGroupID)

您不能比较int[]int是否相等,但您可以检查int[]包含特定的int

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM