Vb.net 具有条件左连接的LINQ
嗨,我是linq的新手, 我尝试使用LinQ进行左连接查询。这是我的疑问:Vb.net 具有条件左连接的LINQ,vb.net,linq,entity-framework,Vb.net,Linq,Entity Framework,嗨,我是linq的新手, 我尝试使用LinQ进行左连接查询。这是我的疑问: SELECT B.[ID] ,A.[GroupID] ,B.[Year] ,B.[Month] ,B.[Col1] ,B.[Col2] ,B.[Col3] ,B.[Col4] ,B.[Col5] FROM MsGroups A LEFT JOIN MsCKPNS B on A.GroupId = B.GroupId and
SELECT B.[ID]
,A.[GroupID]
,B.[Year]
,B.[Month]
,B.[Col1]
,B.[Col2]
,B.[Col3]
,B.[Col4]
,B.[Col5] FROM MsGroups A
LEFT JOIN MsCKPNS B on
A.GroupId = B.GroupId and B.Year = 2014 and B.Month = 3
以下是我的linq查询:
Dim msckpn = (From g In db.MsGroup
Group Join c In db.MsCKPNs
On g.GroupId Equals c.GroupID Into
Group From a In Group.DefaultIfEmpty() _
Where a.Month = Month And a.Year = Year
Select New MsCKPN With {
.ID = Nothing,
.GroupID = g.GroupId,
.Month = Month,
.Year = Year,
.Col1 = a.Col1,
.Col2 = a.Col2,
.Col3 = a.Col3,
.Col4 = a.Col4,
.Col5 = a.Col5
}).ToList
但是,它显示了错误:无法在LINQ to Entities查询中构造实体或复杂类型“MvcMISD.MsCKPN”
我应该做什么来修复该查询
谢谢您不能创建这样的实体。原因是,您不应该能够创建未链接到数据库中的一个或多个记录的实体。答案下面的注释中给出了对此的解释:您可以创建一个包含所需字段的匿名类型 代码的其他部分看起来有点奇怪,但我对VB中的LINQ不太熟悉,因此我可能会误解您的查询。可能与