无法创建类型的常数值.在尝试将数据从视图模型匹配到上下文时

本文关键字:模型 视图 上下文 数据 类型 创建 常数值 | 更新日期: 2023-09-27 18:16:13

我试图从视图中获得选定的设备,并将它们与上下文中的设备相匹配,但我只得到以下内容:

无法创建类型为ViewModels.XXXViewModel的常量值。在此上下文中只支持基本类型或枚举类型。

public ActionResult TransferDevices(IList<XXXViewModel> viewModel)
{
    var selected = viewModel.Where(x => x.isSelected).ToList();
    IQueryable<Device> devicesQueryable = _db.Devices;
    var devices = devicesQueryable.Where(x => selected.Any(y => y.Id == x.Id)).ToList() ;
}

无法创建类型的常数值.在尝试将数据从视图模型匹配到上下文时

我怀疑你应该让selected一个id列表…那么你可以使用Contains:

public ActionResult TransferDevices(IList<XXXViewModel> viewModel)
{
    var selected = viewModel.Where(x => x.isSelected)
                            .Select(x => x.Id)
                            .ToList();
    IQueryable<Device> devicesQueryable = _db.Devices;
    var devices = devicesQueryable.Where(x => selected.Contains(x.Id)).ToList();
}

期望工作…