2

我正在尝试获取具有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:

请注意,以上应该可以工作 - 我使用了错误的类名!

4

1 回答 1

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; } }
于 2013-02-05T11:32:06.993 回答