我有跟随Linq查询...正确执行:
from t in Tasks
where LookupTaskStarted(t.TaskId) == true
select new
{
t.TaskId,
t.Number,
Started = LookupTaskStarted(t.TaskId)
}
无论如何在Linq-To-Sql类中创建它作为属性?或者我总是要像这样引用它?
答案 0 :(得分:1)
我没有你的问题的答案,但我有一个重构建议。您可以使用let
子句记录值,而不是两次调用LookupTaskStarted():
from t in Tasks
let started = LookupTaskStarted(t.TaskId)
where started
select new
{
T.TaskId,
t.Number,
Started = started
}
写完之后,我意识到如果你按started
过滤,你不需要Started
属性,因为它们都是真的。
答案 1 :(得分:1)
class MyTask
{
public int TaskId {get; set;}
public int Number {get; set;}
public bool Started {get; set;}
public MyTask(Task t)
{
TaskId = t.TaskId;
Number = t.Number;
Started = LookupTaskStarted(t.TaskId)
}
}
// :
// :
from t in Tasks
where LookupTaskStarted(t.TaskId) == true
select new MyTask(t);
答案 2 :(得分:0)
所有linq-sql类都创建为partial。您可以扩展并添加此属性。