当我将 Linq 表达式放入由 Entity Framework 的 Code First 方法映射的域类方法中时,它会导致创建编译器生成的显示类,然后由于未映射显示类而发生映射错误。
...+<>c__DisplayClass5' 未映射。使用 Ignore 方法或 NotMappedAttribute 数据注释检查该类型是否被显式排除。验证该类型是否被定义为一个类,不是原始的、嵌套的或泛型的,并且不是从 EntityObject 继承的。
我使用的导致方法问题的表达式是:
UniqueIds.FirstOrDefault(x => x.IdentifierType.Name == keyword);
我将类型映射到:
.Where(x => x.Namespace != null
&& !x.IsAbstract
&& !x.IsEnum
&& x.Namespace.StartsWith("<removedprefix>.Domain")
请注意,我实际上并没有使用“removedprefix”,出于隐私原因,我只是不想透露命名空间。
如何在域类方法中使用 Linq 表达式而不会出现上述错误?
编辑:当然,我想在不禁用延迟加载的情况下解决问题。