使用实体框架获取特定类型的实体会返回错误-LINQ to Entities无法识别方法'System.Type GetType()'

Kar*_*ran 1 c# linq-to-entities entity-framework gettype asp.net-mvc-3

我正在尝试过滤出某种类型的实体。我正在使用实体框架,并且有一个父实体,以及从该父实体继承的各种子代。我正在尝试过滤掉其中一个孩子。

例如,我具有以下结构:

  • 地址:实体
    • 邮编:地址
    • 街道地址

用户实体具有对一个地址的引用。如何获取与PostCode类型的地址相关联的用户列表?

即我试过:

 var query = from User p in context.Users
                        where p.Address.GetType() == typeof(PostCode)
                        select p;
Run Code Online (Sandbox Code Playgroud)

但是我得到:

LINQ to Entities无法识别方法'System.Type GetType()',并且该方法无法转换为商店表达式。

我已经看到了几种解决方案,其中包括先获取“用户”列表,然后选择某种类型的用户。该解决方案的问题是查询首先获得所有用户。我希望我的查询包括过滤器,因为我有很多用户。

谢谢!

Eup*_*ric 5

尝试使用is运算符。

 var query = from User p in context.Users
                    where p.Address is PostCode
                    select p;
Run Code Online (Sandbox Code Playgroud)