只是想知道这是否可能。我对实体框架上下文有各种LINQ查询,例如:
IQueryable<MetaData> metaDataList = context.MetaData.AsQueryable();
metaDataList = metaDataList.Where(md => md.MetaTagFilter1.Equals(keyValueMetaTagFilter.MetaTagValue, StringComparison.InvariantCultureIgnoreCase));
metaDataList = metaDataList.Where(md => md.MetaTagFilter2.Equals(keyValueMetaTagFilter.MetaTagValue, StringComparison.InvariantCultureIgnoreCase));
metaDataList = metaDataList.Where(md => md.MetaTagFilter3.Equals(keyValueMetaTagFilter.MetaTagValue, StringComparison.InvariantCultureIgnoreCase));
如您所见,除了所使用的属性外,它们是相同的:MetaTagFilter1,MetaTagFilter2,MetaTagFilter3。
我不想写一遍又一遍,而是想写一个“ Filter”方法,这样我就可以这样调用它:
metaDataList = metaDataList.Filter("MetaTagFilter1");
metaDataList = metaDataList.Filter("MetaTagFilter2");
metaDataList = metaDataList.Filter("MetaTagFilter3");
因此,属性名称作为字符串传递,然后应在LINQ查询中使用此属性。
我尝试通过将属性作为Func传递并通过反射进行尝试,但是如果在LINQ查询中使用LINQ,则不能将实体的LINQ转换为这些语句。
知道这是否可行吗?
使用LinqKit。只要它们返回表达式树,它就允许您在查询中使用方法。
因此,基于描述要使用哪个属性的参数在方法中创建一个表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句