Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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# 使用实体框架4将SQL“not in”转换为LINQ to实体_C#_Sql Server_Vb.net_Entity Framework_Linq - Fatal编程技术网

C# 使用实体框架4将SQL“not in”转换为LINQ to实体

C# 使用实体框架4将SQL“not in”转换为LINQ to实体,c#,sql-server,vb.net,entity-framework,linq,C#,Sql Server,Vb.net,Entity Framework,Linq,如何使用Entity Framework 4将带有“not in”关键字的SQL转换为LINQ to实体? 以“ID”结尾的所有字段都是整数类型 SELECT * FROM IRSampleCompletionGoal as goal_tbl where (Cast(goal_tbl.[TermID] as nvarchar) +' '+Cast(goal_tbl.[UserID] as nvarchar)+' '+Cast(goal_tbl.[CourseID] a

如何使用Entity Framework 4将带有“not in”关键字的SQL转换为LINQ to实体? 以“ID”结尾的所有字段都是整数类型

SELECT * 
        FROM IRSampleCompletionGoal as goal_tbl
  where 
  (Cast(goal_tbl.[TermID] as nvarchar) +' '+Cast(goal_tbl.[UserID] as nvarchar)+' '+Cast(goal_tbl.[CourseID] as nvarchar)+' '+cast(goal_tbl.[StudentID] as nvarchar)+' '+cast(goal_tbl.[ObjectiveID] as nvarchar))  
  NOT IN
  (
  select (Cast([TermID] as nvarchar) +' '+Cast([UserID] as nvarchar)+' '+Cast([CourseID] as nvarchar)+' '+cast([StudentID] as nvarchar)+' '+cast([ObjectiveID] as nvarchar)) 
  from IRSampleCompletionCurrentStatistics
  where ((ArtifactID is not null) OR (NoArtifactChecked='True' ))

  )

试着这样做:

 goal_tbl.Where(x => !IRSampleCompletionCurrentStatistics.Where(i => i.ArtifactID != null || i.NoArtifactChecked == true).Any(i => (i.TermID.ToString() + " " + i.UserID.ToString() + i.StudentID.ToString() + " " + i.ObjectiveID.ToString()) == (x.TermID.ToString()+ " " + x.UserID.ToString() + " " + x.CourseID.ToString() + " " + x.StudentID.ToString() + x.ObjectiveID.ToString()))

创建一个数组,而不是thisArray.ContainssomevalueOr!此数组。包含C的meValue。非常感谢所有响应者!Bruniasty,您能用VB.NET语法编写相同的lambda查询吗?如何将此查询的结果分配给变量?像这样:Dim myvariable作为IEnumerableof IRSampleCompletionGoal='your query'?我尝试了Dim测试作为IEnumerableof IRSampleCompletionGoal=goal\u tbl.Where!IRSampleCompletionCurrentStatistics.Wherei=>i.ArtifactID!=null | | i.NoArtifactChecked==true.Anyi=>i.TermID.ToString++i.UserID.ToString+i.StudentID.ToString++i.ObjectiveID.ToString==x.TermID.ToString++x.UserID.ToString++x.CourseID.ToString++x.StudentID.ToString+x.ObjectiveID.ToString,我在i.ArtifactID处得到了预期的标识符错误!=null,指向“!=”符号。尝试替换“!=“IsNot Nothing”上的null“Isnothing”,请不要忘记在lambda表达式的开头添加“x=>”。如果可能,请有人将原始查询翻译为查询表达式语法,而不是基于方法的语法(对于VB)?非常感谢。