我的项目跟踪系统需要一点工作。目前,每个用户都可以给自己分配一堆项目,并跟踪自己在这些项目上的工作时间。
我试图在我的选项列表中添加一个where条件,人们可以在其中添加自己的时间。目前,人们可以选择所有项目。这对很多项目来说可能有点烦人,所以我想要一个
Where
声明将其选项限制为自己的项目。
.Field(new Field("ProjectEntry.IdProject")
.Options(new Options()
.Table("View_User_Project")
.Value("IdProject")
.Label("Name")
.Where("View_User_Project", "View_User_Project.IdUser", "=", idUser) // TODO Find out what's going on
)
.Validator(Validation.NotEmpty())
)
这个“Where”方法只接受一个参数
Action<Query>
有点争论。我从来没有见过
在哪里?
具有这种语法的语句。
完整数据库代码:
var context = HttpContext.Current;
var idUser = Utility.GetIdUser(context);
var request = context.Request;
using (var db = Utility.GetDb())
{
var editor = new Editor(db, "ProjectEntry", "IdProjectEntry")
.Model<ProjectEntryModel>("ProjectEntry")
.Model<ProjectModel>("Project")
.Field(new Field("ProjectEntry.IdProject")
.Options(new Options()
.Table("View_User_Project")
.Value("IdProject")
.Label("Name")
.Where("View_User_Project", "View_User_Project.IdUser", "=", idUser) // TODO Find out what's going on
)
.Validator(Validation.NotEmpty())
)
.Field(new Field("ProjectEntry.IdUser"))
.Field(new Field("ProjectEntry.TimeWorked")
.Validator(Validation.NotEmpty())
.Validator(Validation.Numeric())
)
.Field(new Field("ProjectEntry.TimestampWeek")
.Validator(Validation.NotEmpty())
)
.LeftJoin("Project", "Project.IdProject", "=", "ProjectEntry.IdProject")
.Where("ProjectEntry.IdUser", idUser, "=");
editor.PreCreate += (sender, e) => editor.Field("ProjectEntry.IdUser").SetValue(idUser);
var response = editor.Process(request).Data();
return Json(response);
}
A forum post that gave me a little bit of insight