我经常需要通过字段来限制选择publishStart
,publishEnd
例如active
我在几个不同的表中有这些字段。所以应该只选择行,即
a: active == true;
b: publishStart < now;
c: publishEnd > now;
因此,例如:
db.myTable.SingleOrDefault(a => (a.ID == _theID
//now the active and start-end part:
&& ((a.publishEnd > DateTime.Now) || (a.publishEnd == null))
&& ((a.publishStart <= DateTime.Now) || (a.publishStart == null))
&& a.active == true));
这有点冗长,所以我想知道是否可以创建一个(扩展?)方法,例如:
db.myTable.SingleOrDefault(a => (a.ID == _theID).isActive()
其中isActive()
提供了上述代码段的 3 行。
我怎么能这样做?有没有更好的方法来清理代码?