你好,我是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 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”。
我该怎么做才能修复查询?
由于
答案 0 :(得分:0)
您无法创建这样的实体。原因是您不应该能够创建未链接到数据库中的记录或记录的实体。这个答案在下面的评论中给出了解释:https://stackoverflow.com/a/5325861/1737957您可以创建一个包含所需字段的匿名类型。
代码的其他一些部分看起来有点奇怪,但我对VB中的LINQ不太熟悉,所以我可能会误解你的查询。