0

这是一个非常简单的 LINQ 和/或问题。

在以下查询摘录中,我的目的是获取与以下三个条件中的任何一个匹配的记录。

我的逻辑是正确的还是有更好的表达方式?

  • (t2.Username == userName) && (viewMode == 1)
  • (t1.Owner == 用户名) && (viewMode == 1)
  • (视图模式 == 2)

查询摘录

where
((t2.Username == userName) && (viewMode == 1)) ||
((t1.Owner == userName) && (viewMode == 1)) || 
((viewMode == 2))
4

2 回答 2

2

这应该更有效地为您提供相同的结果:

viewMode == 2 ||
(viewMode == 1 && (t2.Username == userName || t1.Owner == userName))
于 2012-11-15T17:07:58.963 回答
2

你的逻辑看起来很好,你当然可以稍微不同:

where ( (viewMode == 1 && ( t2.Username == userName || t1.Owner == userName ))
   || viewMode == 2) 

我猜哪个对你的眼睛更好看!

于 2012-11-15T17:08:48.837 回答