我有以下getter:
public DateTime LastWeek {
get { return this.FirstWeek.AddDays(7 *this.WeeksCount); }
}
以及以下查询
var query = from o in dataContext.Operations
where o.Date <= param.LastWeek && o.Date >= param.FirstWeek;
LastWeek getter会在查询执行之前得到评估,并且会在那里传递它的值,还是会被转换为类似DATEADD的东西(... - 所以它的逻辑会转移到查询中?
通过使用上述方法或将lastWeek值作为额外变量,很容易尝试:
var lastWeek = param.LastWeek;
但是我们必须检查每个查询 - 是否有可以应用的全局规则?
答案 0 :(得分:0)
string queryText = (from o in dataContext.Operations
where o.Date <= param.LastWeek && o.Date >= param.FirstWeek).ToString();
您将看到将构建什么SQL查询。
答案 1 :(得分:0)
<div class="row" id="loginForm">
<p>Username : </p>
<input type="text" class="form-control input" id="usr">
</div>
get实现中的逻辑不会传输到SQL。但我相信只有在查询转换为SQL时才会在C#中进行评估。将一个断点放入getter中,看看它是否在执行查询之前被点击,但是在定义之后。
转换为SQL的东西是表达式,而不是实现(Linq映射了几个SQL调用,如LastWeek
,Contains()
等等。)