无法创建具有两个相同名称属性的匿名类型

时间:2015-01-23 21:09:26

标签: linq-to-entities vb.net-2010 anonymous-types

我有简单的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

1 个答案:

答案 0 :(得分:1)

您不能使用具有相同名称的2个属性,但您可以使用select并创建具有2个不同名称的属性的匿名类型,如下所示:

Select New With {.cbId = cb.Id, .SodaId = Soda.Id, .Price = Soda.Price, .Name = cb.Name}