有没有办法使用FirstOrDefault()
在复杂查询中,但如果返回空值不会抛出异常?
我的查询:
contex.Table1.Where(t => t.Property == "Value").FirstOrDefault()
.Object.Table2.Where(t => t.Property2 == "Value2").FirstOrDefault();
如果对第一个表 (Table1) 的查询未返回对象,则代码将引发异常。有没有办法让它只返回空值?
最佳答案
试试 SelectMany
在 Table2
,没有中间 FirstOrDefault()
:
context.Table1.Where(t1 => t1.Property1 == "Value1")
.SelectMany(t1 => t1.Table2.Where(t2 => t2.Property2 == "Value2"))
.FirstOrDefault();
此外,您可能希望使用 SQL Profiler 来检查 EF 发送的 SQL。我相信在您的问题中构造的查询将导致两个查询被发送到数据库;每人一份
FirstOrDefault()
.
关于entity-framework - 在查询中使用 FirstOrDefault(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993569/