2012-11-28 38 views
0

我有一个数据库模式如下:LINQ的包括()适用于开发而不是在Azure上

FailureItem 
--------------- 
FailureID int foreign key references Failure (FailureID) 
DatabaseID int NULL foreign key references Items (DatabaseID) 
FailureDescription varchar(200) 

Item 
--------------- 
DatabaseID int primary key identity(1,1) 
ItemDescription varchar(200) 

我使用LINQ把它绑定到一个GridView如下:

Dim items as List(Of FailureItems) = 
    context.FailureItems.include("Item").where(function(x) x.FailureID = _failureID) 



<asp:GridView ID="gv1" runat="server"> 
    <Columns> 
     <asp:BoundField DataField="databaseID" Visible="false" /> 
     <asp:BoundField DataField="FailureDescription" headertext="Failure Description" /> 
     <asp:BoundField DataField="Item.ItemDescription" headertext="Item Description" /> 
    </Columns> 
</asp:GridView> 

这在我的开发机器上完美工作。当我将其发布到azure上时,出现错误“在所选数据源中找不到名称为'Item.ItemDescription'的字段或属性。”我究竟做错了什么?

+0

确实正在使用正确的连接字符串?检查角色的属性窗格中,确保服务配置设置设置为“云”并验证所有设置是否正确。 –

+0

我检查了一切,它仍然没有工作 - 我甚至登录到实例并检查连接字符串。 – jagdipa

回答

0

我最终的代码更改为以下,其中的工作:

Dim items = 
    (from fi in context.FailureItems 
    where(fi.FailureID = _failureID) 
    select new with { 
     fi.databaseID, 
     fi.FailureDescription, 
     ItemDescription = If(fi.Item isnot nothing, fi.Item.ItemDescription, nothing) 
    }).ToList 
相关问题