我正在尝试过滤一些这样的元素:
model = model.Where(feature => item
.Input
.Contains(feature
.GetType()
.GetProperty(item.Attribute)
.GetValue(feature)
.ToString()));
item
是一个接收有关过滤数据的对象,例如item.Input
是List<string>
,其中包含用户填写的内容和item.Attribute
(string
})是我应该看的列。我测试错误的字段是Guid?
类型的字段,它被称为AssignedUserId
,奇怪的是它有效:
model = model.Where(feature => item.Input.Contains(feature.AssignedUserId.ToString()));
作为一个说明,这有效:
model = model.Where(feature => feature
.GetType()
.GetProperty(item.Attribute)
.GetValue(feature)
.ToString() == item.Input.ElementAt(0));
因此item.Attribute
填充良好,过滤器正常工作。
我得到的错误是:
System.InvalidOperationException: The binary operator NotEqual is not defined for the types 'Microsoft.EntityFrameworkCore.Storage.ValueBuffer' and 'Microsoft.EntityFrameworkCore.Storage.ValueBuffer'.
获取第一个代码示例中的字段值有什么问题?