实体框架 - 使用可空连接键过滤查询

时间:2010-10-23 00:23:32

标签: linq entity-framework

我有一个基于以下T SQL的查询:

select t1.field1 
       t2.field1, 
       t2.field2, 
       t3.field1,
t3.field2 
from t1 left outer join t2 on t1.t2key = t2.id
        left outer join t3 on t1.t3key = t3.id

在Linq to Entities中,查询采用

形式
var query = db.context.t1.include(“t2”).include(“t3”);

表t1有一个不寻常的结构,字段t2key和t3key可以为空。可空字段阻止我通过任何t2或t3字段进行过滤。

到目前为止,我能看到的唯一出路是在执行过滤之前将结果作为数据库视图返回。或者我应该采取另一种方法吗?

1 个答案:

答案 0 :(得分:0)

为了它的价值,我最终最终使用了Linq。如果其他人在同一条船上,这就是绕过可空问题的语法:

query = query.Where(x => x.t1field!= null?x.t1field.t3field.Contains(model.propvalue):false).Select(x => x);