LINQ的包括()适用于开发而不是在Azure上
问题描述:
我有一个数据库模式如下: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'的字段或属性。”我究竟做错了什么?
答
我最终的代码更改为以下,其中的工作:
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
确实正在使用正确的连接字符串?检查角色的属性窗格中,确保服务配置设置设置为“云”并验证所有设置是否正确。 –
我检查了一切,它仍然没有工作 - 我甚至登录到实例并检查连接字符串。 – jagdipa