SQL到Linq转换左外联接
我正在尝试将此SQL语句转换为LINQSQL到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
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");