【发布时间】:2015-01-23 21:09:25
【问题描述】:
我有一个简单的 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 variable Id is already declared。
更新:发现 microsoft 文档仅显示使用属性名称,因此“Id”是传递的字段。 在查询快递的匿名类型中 https://msdn.microsoft.com/en-us/library/bb384767.aspx
【问题讨论】:
-
不确定语法,但您可以显式指定属性名称。所以使用
cbId和SodaId,在C#中就像select new { cbId = cb.Id, SodaId = soda.Id.... -
Select new { cbid = cd.Id, sodaid= Soda.Id, ...? -
感谢 Habib、Giorgos 和 dotnetom。
标签: linq-to-entities vb.net-2010 anonymous-types