我在查询中使用了很多辅助方法。下面的示例:
public static bool HelpMe()
=> dbContext.MyTable.Any(entity => entity.SomeBoolean)
问题是当我在另一个查询中使用它时,我得到另一个EF无法翻译它的信息。
简而言之,这是行不通的:
dbContext.OtherTable.Where(entity => HelpMe() == entity.Value)
但这会:
dbContext.OtherTable.Where(entity => dbContext.MyTable.Any(entity => someCondition(entity)) == entity.Value)
很明显,第二个代码不好,因为它不那么可读,需要在多个位置更改代码。
我已经阅读了有关IMethodCallTranslator的信息,并且想知道如何将其用作EF核心以照常转换HelpMe方法。