【发布时间】:2020-02-21 15:16:38
【问题描述】:
我正在尝试根据 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; }
}
请帮忙
【问题讨论】:
-
您正在尝试将单个 int 与 int 数组进行比较
-
是的,但我不知道数组比较的代码是什么。如果我将其更改为包含,我会收到以下错误:'int[]' 不包含“包含”的定义和最佳扩展方法重载 'Queryable.Contains
(IQueryable 的接收器, int?)' 需要类型为 'IQueryable '
标签: c# asp.net asp.net-mvc linq