Linq获取所有实现接口的对象
本文关键字:接口 对象 实现 获取 Linq | 更新日期: 2023-09-27 17:57:37
有可能得到这样的东西吗:
return Session.Query<A>().Where(x => x is B).ToList();
其中B从为接口工作的A派生(即获取实现某个接口的所有对象)?谢谢
您不能直接将此语句转换为SQL。首先,您必须评估查询或使用AsEnumerable()
。
return Session.Query<A>().AsEnumerable().Where(x => x is B).ToList();
或者:
return Session.Query<A>().AsEnumerable().OfType<B>().ToList();
AsEnumerable
之后的部分将在内存中执行。