获取某些类型的对象

时间:2013-02-05 11:28:10

标签: c# linq nhibernate inheritance types

我正在尝试获取具有E某些类型的return Session.Query<Host>().Where(x => x.E is B).ToList(); 个对象的Host对象:

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

class B : A
{

}

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

{{1}}

为什么以上不起作用的任何想法?感谢。

PS:

请注意以上内容应该有效 - 我使用了错误的班级名称!

1 个答案:

答案 0 :(得分:1)

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; } }