Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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
SQL到Linq转换左外联接_Sql_Linq To Sql - Fatal编程技术网

SQL到Linq转换左外联接

SQL到Linq转换左外联接,sql,linq-to-sql,Sql,Linq To Sql,我正在尝试将此SQL语句转换为LINQ SELECT a.UserId, b.Date, a.Value1 FROM web.Table2 AS b LEFT OUTER JOIN web.Table1 AS a ON b.Date = a.CreateDate AND UserId = 1 这就是我所拥有的不起作用的东西: Dim query = From a In ctx.Table1 _ Group Join b In ct

我正在尝试将此SQL语句转换为LINQ

SELECT     
  a.UserId, b.Date, a.Value1
FROM         
  web.Table2 AS b
LEFT OUTER JOIN
  web.Table1 AS a 
ON 
  b.Date = a.CreateDate AND UserId = 1
这就是我所拥有的不起作用的东西:

Dim query = From a In ctx.Table1 _
        Group Join b In ctx.Table2 On b.Date Equals a.CreateDate Into group1 = Group
        From x In group1.DefaultIfEmpty() _
        Where ls.UserId = 1 _
        Select a.UserId, x.Date, a.Value1
您的代码应该是(检查别名b,您使用的是x)


您始终可以直接在LINQ To SQL中执行查询,例如:

IEnumerable<MyClass> results = db.ExecuteQuery<MyClass>(@"
    SELECT a.UserId, b.Date, a.Value1 
    FROM web.Table2 AS b 
    LEFT OUTER JOIN web.Table1 AS a ON b.Date = a.CreateDate 
        AND UserId = 1");
IEnumerable results=db.ExecuteQuery(@”
选择a.UserId、b.Date、a.Value1
从web.Table2作为b
左侧外部连接web.Table1作为b上的a。日期=a.CreateDate
和UserId=1“;

我收到此错误:“b”在此上下文中不可访问,因为它是“朋友”。此外,您是否打算删除组联接并替换为常规联接?这会导致更多的错误。为什么它不起作用?错误的结果还是错误?如果出现错误,请发布整个错误消息。。。感谢失败的结果,没有执行正确的左外连接。Dim查询作为IEnumerable(表1的)=ctx.ExecuteQuery(表1的)(@“从web.Table2中选择a.UserId、b.Date、a.Value1作为b左外连接web.Table1作为b上的a.Date=a.CreateDate和UserId=1”)的@符号是什么?获取错误,应为表达式。
IEnumerable<MyClass> results = db.ExecuteQuery<MyClass>(@"
    SELECT a.UserId, b.Date, a.Value1 
    FROM web.Table2 AS b 
    LEFT OUTER JOIN web.Table1 AS a ON b.Date = a.CreateDate 
        AND UserId = 1");