我正在尝试获取具有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:
请注意以上内容应该有效 - 我使用了错误的班级名称!
答案 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; } }