我有简单的linq查询,其中join语句的结果是匿名类型。问题是两个属性具有相同的名称。如何让这个工作。 假设我有以下代码
Dim retQry = From cb In _entityCtx.CandyBars
Join soda in _entityCtx.Drinks
On cb.Id Equals soda.Id
Select cb.Id, Soda.Id, Soda.Price, cb.Name
我收到错误已经声明了Range变量Id。
更新:找到仅显示属性名称的微软文档,因此“Id”是传递的字段。 在匿名类型中来自查询表达 https://msdn.microsoft.com/en-us/library/bb384767.aspx
答案 0 :(得分:1)
您不能使用具有相同名称的2个属性,但您可以使用select并创建具有2个不同名称的属性的匿名类型,如下所示:
Select New With {.cbId = cb.Id, .SodaId = Soda.Id, .Price = Soda.Price, .Name = cb.Name}