Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试引用c类中的查询_C#_Sql_Visual Studio_Visual Studio Lightswitch_Lightswitch 2013 - Fatal编程技术网

C# 尝试引用c类中的查询

C# 尝试引用c类中的查询,c#,sql,visual-studio,visual-studio-lightswitch,lightswitch-2013,C#,Sql,Visual Studio,Visual Studio Lightswitch,Lightswitch 2013,在Lightswitch 2013解决方案的服务器项目中,我试图用下面的ApplicationDataService.lsml.cs代码片段完成两件事 partial void Query1_PreprocessQuery(ref IQueryable<CandidateBasic> query) { query = from item in query where item.CreatedBy == this.Application.User.Name select ite

在Lightswitch 2013解决方案的服务器项目中,我试图用下面的ApplicationDataService.lsml.cs代码片段完成两件事

partial void Query1_PreprocessQuery(ref IQueryable<CandidateBasic> query)
{
    query = from item in query where item.CreatedBy == this.Application.User.Name select item;
}

partial void CandidateBasics_Validate(CandidateBasic entity, EntitySetValidationResultsBuilder results)
{
    var newcandidateCount = this.DataWorkspace.ApplicationData.Details.GetChanges().AddedEntities.OfType<CandidateBasic>().Count();
    var databasecandidateCount = this.CandidateBasics.GetQuery().Execute().Count();

    const int maxcandidateCount = 1;

    if (newcandidateCount + databasecandidateCount > maxcandidateCount)
    {
        results.AddEntityError("Error: you are only allowed to have one candidate record");
    }
}
首先,我想确保每个用户只能看到他制作的东西。这与对所讨论的表的预处理查询一起可以完美地工作

下一位用于确保每个用户只能在某个表中创建一条记录。不幸的是,它似乎在查看整个表,而不是我所做的只显示用户自己记录的查询


我怎样才能得到第二位代码来只限制用户自己的记录,而不限制全局表呢?

您实际上并没有调用该查询,是吗?根据提供的代码,您的查询被称为Query1,但您似乎没有调用它。我会这样做:

int count = DataWorkspace.ApplicationData.Query1().Count(); 

这似乎应该在SQL端使用主键或唯一约束强制执行。我不知道Lightswitch,但您是说您希望在某些上下文(例如databasecandidateCount)中有条件地排除预处理查询,但在其他上下文中应用它将用户仅限于他创建的项?否,我希望预处理查询应用于databasecandidateCount,因此它是查询返回的记录计数,而不是表中的记录计数。谢谢你的帮助!