0

私が持っているのは、PublicationとDTPersonnelの2つのテーブルです。パブリケーションには主キーがあり、もう一方(DTPersonnel)にはパブリケーションにリンクするフィールドがあります。LinqDataSourceのDBMLレイアウトを送信し、2つのテーブルをリンクしました。LinqDataSourceコンポーネントをWebページと(テスト用に)ラベルに追加しました。

次に、次のようにDTPersonnel.DTRoleIDのフィールドを指すようにラベルデータバインディングを設定します。

 <asp:FormView ID="FormView1" runat="server" AllowPaging="True" 
        DataSourceID="LinqDataSource1">
        <ItemTemplate>
            <asp:Label ID="Label1" runat="server" 
    Text='<%# BIND("DTPersonnels.DTRoleID") %>'></asp:Label>
        </ItemTemplate>
    </asp:FormView>
    </asp:Content>

私のLinqDataSourceは次のように設定されています:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Layout.aspx.cs" Inherits="AequorPubTracker.Account.Layout" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        ContextTypeName="AequorPubTracker.LayoutDataContext" EntityTypeName="" 
        onselecting="LinqDataSource1_Selecting" TableName="Publications" 

        Select="new (DTPersonnels.DTRoleID,PublicationID, DTPersonnels, ActLAYDate, ActRRIPDate, ActPPIDate, ActPPODate, ActECTWDate, TargetECTWDate, TargetPPIDate, TargetRRIPDate, TargetPPODate, TargetLAYDate)">
    </asp:LinqDataSource>

しかし、ブラウザでアプリを実行すると、次のエラーが発生します。

例外の詳細:System.Web.Query.Dynamic.ParseException:タイプ'EntitySet`1'にプロパティまたはフィールド'DTRoleID'が存在しません

私は十分な情報を提供したことを願っています。

4

2 に答える 2

1

select句を指定しているので、これはデータの読み取り専用ビューであると思います。もしそうなら、あなたの問題はかなり簡単な解決策を持っています。ただし、そうでない場合(コードがではBindなくメソッドを呼び出すため、不確かです)、指定されたメンバーを持つは更新を許可できないためEval、関連フィールドを更新するために必要なより複雑な処理があります。LinqDataSourceSelect

句でメンバーを選択していることを確認しますDTPersonnelsが、選択から削除しますDTPersonnels.DTRoleID。呼び出すEval("DTPersonnels.DTRoleID")と、関連するレコードのメンバー値が表示されます。

ただし、スキーマファイルの構成にも問題があると思います。私が推測できることから、との間には1対1の関係があると予想されPublicationsますDTPersonnel。ただし、エラーはにメンバーがいないことを示しているため、が多数EntitySetある1対多の関係を許可したことを意味します。1対1の関係がない場合、コードは表示する関連レコードを判別できません。PublicationsDTPersonnelDTRoleID

実際にに関連するものがたくさんあることを意図している場合は、代わりに関連するデータのリストを表示して表示するという逆の方法からこれにアプローチすることをお勧めします。DTPersonnelPublicationDTPersonnelPublication

于 2011-10-19T19:36:30.747 に答える
0

エラー自体がどこから来ているのか疑問に思っている場合は、次の場所にあります。

Select="new (DTPersonnels.DTRoleID,PublicationID, DTPersonnels, ActLAYDate, ActRRIPDate, ActPPIDate, ActPPODate, ActECTWDate, TargetECTWDate, TargetPPIDate, TargetRRIPDate, TargetPPODate, TargetLAYDate)">

Publicationsテーブルからデータを選択しているため、そこでフィールド「DTRoleID」を探しています。テーブルに「DTRoleID」フィールドがないため、エラーが発生していると思います。

于 2011-10-19T19:49:34.480 に答える