Vb.net 对于每个迭代生成错误
我正在从头开始重建我的网站,对数据库做了重大更改。下面的函数在旧网站项目中工作得非常好,但现在我已经将代码复制到新项目中,VS2012不喜欢在中为custorders中的每个订单添加“order”,表示订单未声明,并且由于其保护级别可能无法访问Vb.net 对于每个迭代生成错误,vb.net,visual-studio-2012,Vb.net,Visual Studio 2012,我正在从头开始重建我的网站,对数据库做了重大更改。下面的函数在旧网站项目中工作得非常好,但现在我已经将代码复制到新项目中,VS2012不喜欢在中为custorders中的每个订单添加“order”,表示订单未声明,并且由于其保护级别可能无法访问 Public Shared Function GetOrderDisplaybyCustomerId(ByVal customerId As Integer) As List(Of OrderDisplay) Dim list As New Li
Public Shared Function GetOrderDisplaybyCustomerId(ByVal customerId As Integer) As List(Of OrderDisplay)
Dim list As New List(Of OrderDisplay)
Dim item As New OrderDisplay
Using ctx As New webEntities
Dim custorders = (From o In ctx.salesorders
Where o.order_divisionId = customerId
Join s In ctx.addresses On o.order_shippingAddressId Equals s.addressId
Join st In ctx.states On s.address_stateProvinceId Equals st.stateId
Order By o.OrderDate Ascending
Select New With {o.OrderDate, o.InvoiceNumber, o.CustomerPONumber, o.AccountNumber, s.StreetAddress, s.City, st.AbbreviatedName}).ToList()
If custorders.Count > 0 Then
For Each order In custorders
item._orderdate = order.OrderDate.ToShortDateString()
item._invoicenumber = order.InvoiceNumber
item._customerPOnumber = order.CustomerPONumber
item._acctnumber = order.AccountNumber
item.Address = order.StreetAddress
item.City = order.City
item.State = order.AbbreviatedName
list.Add(item)
Next
Return list
Else
Return Nothing
End If
End Using
End Function
我在其他功能中也得到了完全相同的行为,任何建议都值得赞赏。我猜您有一个全局项目级别的设置:
Option Infer Off
在项目设置中检查它以确保
选项推断打开
,然后在单个类/模块文件中,确保没有选项推断关闭
我猜您有一个全局项目级别的设置:
Option Infer Off
在项目设置中检查它以确保
选项推断打开
,然后在您的单个类/模块文件中,确保没有选项推断关闭
为什么要首先创建匿名类型,然后立即将其转换为特定类型(通过重新使用一个实例-我希望这会给出错误)?为什么不在LINQ查询中创建OrderDisplay实体呢?因为将Dim custorders更改为Dim custorders as List(Of OrderDisplay)会在VS中产生一个更为明显的错误。您将如何处理?对于您已经拥有的.ToList()
,如果您返回OrderDisplay
s,我预计不会出现错误。对不起,我对VB的了解还不够,我还建议你每次在循环中创建一个新项目,现在,你总是插入相同的项目。最后,您的列表将包含一组相同的类型。为什么您首先创建一个匿名类型,只是为了立即将其转换为特定类型(通过重新使用一个实例-我希望这会产生错误)?为什么不在LINQ查询中创建OrderDisplay实体呢?因为将Dim custorders更改为Dim custorders as List(Of OrderDisplay)会在VS中产生一个更为明显的错误。您将如何处理?对于您已经拥有的.ToList()
,如果您返回OrderDisplay
s,我预计不会出现错误。对不起,我对VB的了解还不够,我还建议你每次在循环中创建一个新项目,现在,你总是插入相同的项目。最后,您的列表将包含一组相同的选项。默认情况下,选项“推断”设置为“开”,并且我没有更改它。选项“推断”是我能想到的唯一一个可能导致所有位置的有趣错误的选项。对不起,我想不出别的了。。。也许您尝试使用MSBuild构建解决方案,看看编译器会抱怨什么?默认情况下,选项Infer设置为on,而我没有更改它。选项Infer是我能想到的唯一一个可能导致所有地方都出现有趣错误的方法。对不起,我想不出别的了。。。也许您尝试使用MSBuild构建解决方案,看看编译器会抱怨什么?