1

行の親にアクセスしようとしていますが、常に null が返されます。

2 つのテーブルがあります。1 つは駅の説明で、もう 1 つは駅が互いに「近い」かどうかを示します。

CREATE TABLE [dbo].[GlobalStations] (
    [GlobalStationId] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    ....
)

CREATE TABLE [dbo].[NearStations] (
    [OriginalStationId] [int] NOT NULL,
    [ToleratedStationId] [int] NOT NULL,
    ...
)

データの一貫性を確保するために、SQL Server に制約を設定します。

ALTER TABLE [dbo].[NearStations]  WITH CHECK ADD  CONSTRAINT [FK_NearStations_Original] FOREIGN KEY([OriginalStationId])
REFERENCES [dbo].[GlobalStations] ([GlobalStationId])

ALTER TABLE [dbo].[NearStations]  WITH CHECK ADD  CONSTRAINT [FK_NearStations_Tolerated] FOREIGN KEY([ToleratedStationId])
REFERENCES [dbo].[GlobalStations] ([GlobalStationId])

データセットの場合は 2 つのテーブルを追加しました。現在、NearStation 行があるときに GlobalStation にアクセスしようとしています。

var nearStationsTA = new NearStationsTableAdapter()
var stations = nearStationsTA.GetData();
var st = stations[0];
var tid = st.ToleratedStationId;
var global = st.GlobalStationsRowByFK_NearStations_Tolerated; // Always NULL

生成されたコードが何らかの遅延読み込みを行うことを期待していましたが、明らかにそうではありません。

コード自体にロードを強制するにはどうすればよいですか? いずれにせよ使用するすべての GlobalStation をデータセットにロードして、必要なときに行を取得することはできますか?

ありがとう

4

0 に答える 0