0

次のようなデータベーススキーマがあります。

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 を使用してこれをグリッドビューにバインドしています。

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' という名前のフィールドまたはプロパティが、選択したデータ ソースに見つかりませんでした」というエラーが表示されます。私は何を間違っていますか?

4

1 に答える 1

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
于 2012-11-29T16:05:11.767 に答える