我希望能够采用 url 格式的字符串(例如 United -kingdom)并在 WHERE 子句中针对未以这种方式格式化的 Country 列(例如United Kingdom)使用它。
理想情况下,我希望能够做这样的事情:
db.Jobs
.Where(j => j.Country.MyStringFormattingExtension() == urlformattedstring);
我知道这是不行的,因为 EF 会尝试在 SQL 端执行投影。它给了我:“LINQ to Entities 无法识别 'System.String MyStringFormattingExtension(System.String)' 方法,并且该方法无法转换为存储表达式。”
有人建议我在应用 where 子句之前将查询作为可枚举返回,但是我认为这将非常低效 - 在过滤之前从数据库中返回所有行。