获取特定类型的对象

本文关键字:对象 类型 获取 | 更新日期: 2023-09-27 17:57:48

我正在尝试获取具有特定类型的E对象的Host对象,如

return Session.Query<Host>().Where(x => x.E is B).ToList();

这似乎不起作用,可能是因为E的类型是A,而B继承自A。继承可能是问题所在吗。更多(简化)细节:

class Host
{
    public A E { get; set; }
}
class B : A
{
}

有什么想法为什么以上不起作用吗?谢谢

PS:

请注意,以上应该有效-我使用了错误的类名

获取特定类型的对象

return Session.Query<Host>().Where(x => x.E.GetType().Equals(typeof(B)).ToList();

此代码适用于LinqPad:

void Main()
{
    var x = new Host { E = new B() };
    Console.Write(x.E.GetType().Equals(typeof(B)));
}
class A { }
class B : A { }
class Host { public A E { get; set; } }